У меня есть следующий файл .htaccess в моем веб-каталог для моей установки Symfony2:RewriteRule в Apache с Symfony2 не вынимая app.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) app.php [QSA,L]
</IfModule>
Однако, когда я пытаюсь что-то основные, такие как:
(whatever)/web/app.php/place
он не удаляет app.php из URL-адреса. Я новичок в Apache, и я не уверен, что здесь происходит, может ли кто-нибудь пролить свет? Заранее спасибо!
EDIT: Из-за структуры веб-приложения, с которой я работаю, я не могу перемещать app.php или app_dev.php за пределами веб-папки, и я не могу изменить конфигурацию сервера Apache в любом случае, таким образом, я ищу для альтернативного решения этой проблемы.
Нет необходимости «удалять» приложение .php. Вы правы в том, чтобы сделать DocumentRoot в директорию 'web', как это написано в документах symfony, но переход к любому маршруту будет автоматически маршрутизироваться через app.php. Так, например, если вы перейдете на' www. acme.com/блог/статьи/1' переписанная по умолчанию .htaccess переадресовывается на 'www.acme.com/app.php/blog/article/1', но нет необходимости напрямую перемещаться по пути с помощью app.php. Извините, если я пропустил ваш почтовый ящик, но вам может понадобиться некоторое разъяснение: по умолчанию пользователю не нужно перемещаться по app.php. – Kasheen
Вы правы - 'app.php' будет использоваться в любом случае из-за правила перезаписи в файле' .htaccess'. То, что делает моя директива RedirectMatch, заключается не в том, чтобы позволить пользователям перейти в 'app.php' ** явно **. Если пользователь каким-то образом доберется до 'www.acme.com/app.php/home', она будет перенаправлена на' www.acme.com/home' - вот и все. –
Ага, это имеет смысл, спасибо за разъяснение! – Kasheen