Это похоже на мой вопрос Symfony на виртуальном хосте (проблема с корнем документа) .
Это мой .htaccess
в корневом каталоге проекта:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/images/ [OR]
RewriteCond %{REQUEST_URI} ^/js/ [OR]
RewriteCond %{REQUEST_URI} ^/css/
RewriteRule ^(.*)$ /web/$1 [L]
RewriteCond %{REQUEST_URI} !^/web/
RewriteRule ^(.*)$ /web/index.php [QSA,L]
Это решило мою проблему, но Symfony пытается сгенерировать каждый URL (например, используя url_for
) из корня документа, поэтому вместо URL, подобного domain.com/my-article
, генерируется domain.com/web/my-article
.
Мне пришлось немного изменить свой класс PatternRouting
, чтобы обрезать префикс /web
от каждого URL. Я думаю, что это не лучшее решение, но оно работает.
Также, если я хочу получить доступ к бэкэнд-приложению, мне нужно всегда вызывать /web/backend.php/
, потому что я не хочу иметь так много правил перезаписи в .htaccess
.
Если вы хотите увидеть мой расширенный исходный код класса PatternRouting
, я вставлю его сюда.