Коллеги, такая проблема. При попытке авторизоваться, зайти на страницу профиля или выполнить какие-либо действия в бэкенде через админпанель возникает следующего рода ошибка:
Redirects to external URLs are not allowed by default, use \Drupal\Core\Routing\TrustedRedirectResponse for it.
Сайт лежит в подкатегории docroot и установлен с помощью composer. Иногда в пути страницы возникает "docroot/', иногда нет, но то, что переход по многим страницам вызывает сообщение об ошибке, действительно является проблемой. Пока сайт находился в режиме разработки, с этим можно было мириться, но сейчас пришло время открывать его для продакшена. Исходные данные:
- php 7.1
- drupal 8
- Apache
- open_basedir: /home/account/site.com
Адрес, на который был установлен сайт через composer: /home/account/site.com/www/
Домашняя директория сайта: /home/account/site.com/www/docroot/
Конфигурация служебных файлов
Код .htaccess
DirectoryIndex /docroot/index.php
#RewriteEngine On
#RewriteCond %{REQUEST_FILENAME} -f
#RewriteRule ^(.+) $1 [L]
#RewriteCond %{DOCUMENT_ROOT}/docroot%{REQUEST_URI} -f
#RewriteRule ^(.+) /docroot/$1 [L]
#RewriteRule ^(.*)$ /docroot/ [QSA,L]
#Options +SymLinksIfOwnerMatch
#RewriteCond %{REQUEST_URI} !^/docroot/.*$
#RewriteRule ^ docroot/index.php [L]
#RewriteRule ^(.*)$ /docroot/$1 [QSA,L]
#RewriteCond %{REQUEST_URI} !^docroot
#<IfModule mod_rewrite.c>
# RewriteEngine On
# RewriteBase /docroot/
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^(.*) /docroot/#/$1
# RewriteCond %{HTTP_HOST} ^site.com [NC]
# RewriteRule ^(.*)$ http://www.site.com/$1 [L,R=301]
#</IfModule>
#RewriteCond %{REQUEST_URI} !^docroot
#RewriteRule ^ docroot/index.php [L]
#RewriteRule ^(.*)$ docroot/$1 [L]
#RewriteCond %{REQUEST_URI} !^/docroot/.*$
#RewriteRule ^(.*)$ /docroot/$1 [QSA,L]
#RewriteCond %{REQUEST_URI} !docroot/
#RewriteRule (.*) /docroot/$1 [L]
RewriteEngine on
RewriteCond %{REQUEST_URI} !docroot/
RewriteRule (.*) /docroot/$1 [L]
Пробовал разные варианты настроек .htaccess, оставил те, которые работали лучше, но старые закомментил и убирать не стал.
settings.php
$settings['trusted_host_patterns'] = array(
'^www\.site\.com$',
'^site\.com$',
'^.+\.site\.com$',
);
$settings['container_yamls'][] = $app_root . '/' . $site_path . '/services.yml';
index.php в верхней директории
chdir('docroot');
require 'index.php';
Пробовал разные варианты и читал то, что пишут на drupal.org, stackoverflow и на форуме хостера. Ни один из вариантов не сработал.