Я не знаю много о Symfony, но /web
должен быть корнем документа. Все остальные каталоги должны находиться за пределами корня документа по соображениям безопасности для одного и во избежание добавления части /web
в URL для другого. Но, похоже, ты это уже знаешь.
Если вы можете редактировать конфигурацию веб-сервера, попробуйте отразить это и задайте DocumentRoot
для веб-каталога.
Если вы не можете сделать это: невозможно изменить DocumentRoot
в файле .htaccess
, но можно переписать все запросы, чтобы они перешли на /web
внутри, используя mod_rewrite
. Это глупо, но, вероятно, лучшее решение, если вы не можете повлиять на DocumentRoot
.
Я не гуру mod_rewrite, поэтому я не могу привести пример (сначала я должен был бы его протестировать, а сейчас не могу), но я уверен, что кто-то найдет. Возможно добавьте тег mod_rewrite
к вашему вопросу.
Обновление: Не проверено, но должно работать. Поместить в файл .htaccess
в /www
:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/web/
RewriteRule .* /web/%1 [QSA]
Затем вам потребуется изменить файлы конфигурации, чтобы использовать http://www.domain.com/
вместо http://www.domain.com/web/
, конечно.
Я не могу сказать, мешает ли это каким-либо другим .htaccess
правилам на стороне Symfony - вам придется попробовать.