Как мне изменить базовый URL?

15

В Drupal 7 мы можем быстро изменить базовый URL сайта.
Как я могу это сделать в Drupal 8?

Матье Лопес
источник

Ответы:

14

В Drupal 8 эта опция была удалена. Вам не нужно настраивать, base_urlчтобы запустить свой сайт. Drupal 8 может обнаружить это без вашей помощи. Если нет, вам следует сначала проверить конфигурацию вашего веб-сервера.

Вместо этого base_urlвы должны настроить trusted_host_patternsв settings.php. Это не нужно для запуска сайта, но важно по соображениям безопасности.

Дополнительная информация: Удалена опция base_url из settings.php и Новый параметр для конфигурации доверенного имени хоста.

Редактировать:

Есть некоторые особые случаи использования при запуске drupal из командной строки или обратного прокси-сервера, который использовал $ base_url в прошлом. Это больше не может поддерживаться таким же образом из-за Symfony. Идет дискуссия о том, как найти решение для этих случаев. Это не означает, что вы не можете запустить drupal из командной строки или обратного прокси. Стандартный способ, конечно, возможен без проблем.

Вы можете следить за развитием здесь: https://www.drupal.org/node/2753591

4k4
источник
1
Извините, но этот ответ частично вводит в заблуждение. Вы можете иметь совершенно правильную конфигурацию веб-сервера и все еще нуждаться в base_url. $ base_url также возвращается сюда: drupal.org/node/2753591
Fidelix
В то время, когда я писал ответ, $ base_url пропал. Если он вернется, хорошо. Но в большинстве случаев вам это действительно не нужно, если вы настраиваете несколько установок на одном хосте с vhosts и dns, которые большинство сред общего хостинга предлагают в качестве стандартного варианта конфигурации.
4k4
Согласовано. Но вводить в заблуждение, если конфигурация веб-сервера не работает, если вам нужен $ base_url. Есть много допустимых вариантов использования, которые требуют $ base_url.
Fidelix
2
Это было мотивом для удаления $ base_url: drupal.org/node/2528988 (множество действительных вариантов использования: вы можете переместить drupal 8 в подкаталоги в любое время, и он распознает это при следующем запросе без изменений конфигурации)
4k4
Хорошо, теперь я вижу в связанной ветке вашу точку зрения, я буду менять ответ.
4k4
5

Я подумал, что когда-то нужны были какие-то настройки при переходе между производством (http: // example.com/) и dev (http: // localhost / ~ aviram / example.com /). Но нет, D8 достаточно умен, чтобы автоматически исправлять ссылки.

После перемещения всего сайта (файлы PHP и дамп базы данных) просто выполните процесс обновления базы данных D8 ( http://example.com/update.php ), даже если обновление для модели базы данных отсутствует. Это решает проблему.

Я узнал, что это проблема, связанная с кешем в Drupal 8, вероятно, потому что некоторый предварительно отрендеренный контент хранится в сайтах / default / files / php /. И процесс update.php как-то очищает этот кеш.

avibrazil
источник
1
Да, /update.php всегда очищает кеш, даже если нет обновлений для запуска. Это хороший прием для запуска сайта после его перемещения на новое место, если вы не хотите или не можете получить доступ к другому методу для очистки кэша.
4k4