Как использовать mod_rewrite для использования symfony2 с двумя URL - PullRequest
3 голосов
/ 22 марта 2012

Я хочу иметь доступ к моему приложению symfony2 с двумя URL-адресами без изменения конфигурации сервера.Я попытался сделать это с помощью mod_rewrite, в моем случае я хочу иметь возможность доступа к моему приложению в http://example.com/ и http://example.com/test/

.htaccess файл выглядит следующим образом:

RewriteEngine On
RewriteRule ^test/(.*)$ $1 [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]   

Я добавил строку № 2, строки 3 и 4 из руководства symfony2.Ответ 404 от Symfony.Теперь мои вопросы:

1) Возможно ли это сделать с помощью mod_rewrite?
2) Если нет, то каким было бы наилучшее решение?

1 Ответ

0 голосов
/ 03 апреля 2012

Один из вариантов - создать папку с именем «test» и предоставить ей собственную копию app_dev.php и .htaccess

. Возможно, вам потребуется настроить последнюю строку.Файл .htaccess по умолчанию не использует% {DOCUMENT_ROOT}, но моя установка требует этого.

RewriteEngine On
RewriteOptions Inherit
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/test/app_dev.php [QSA,L]

Затем вам нужно отредактировать test / app_dev.php, чтобы добавить дополнительный "../" к требованиюзаявления.

Быстрый тест одного из моих проектов показывает, что это похоже на работу.

Обновление

Не думаю, что это возможнопросто с правилами переписывания.Это моя попытка изменить мой файл web / .htaccess для работы.Насколько я понимаю, если вы запрашиваете / test / foo, URL-адрес переписывается для внутреннего использования в /app_dev.php/foo.Однако способ, которым Symfony находит URL-адрес, который он пытается перенаправить, всегда обнаруживает, что URL-адрес был / test / foo, и я получаю исключение для маршрута, не найденного.чтобы использовать [QSA, L, R = 301], он перенаправляет браузер в /app_dev.php/foo и дает мне нужную страницу.Поскольку он не скрывает app_dev.php, это, вероятно, не то, что вы ищете, но он проверяет, что совпадение работает правильно.

...