@asantat

Как правильно настроить .htaccess при переносе сайта в подкатегорию?

Коллеги, такая проблема. При попытке авторизоваться, зайти на страницу профиля или выполнить какие-либо действия в бэкенде через админпанель возникает следующего рода ошибка:
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 и на форуме хостера. Ни один из вариантов не сработал.
  • Вопрос задан
  • 240 просмотров
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
open_basedir: /home/account/site.com этож нахреа козе баян?
Если не понимаешь в чем проблемам, сделай "символическую ссылку", пусть будет папка доступна по обоим адресам. тебе жалко чтоли?
Зато не нужно будет разбираться что происходит.
А еще лучше исправь doceumentroot в виртуалхосте веб сервера.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы