Прошу прощения за это, так как было много случаев такого вопроса, но я не могу ответить.
Запрос
В проекте Symfony2 я хочу получить доступ к страницамне имея php-контроллера в URL, например:
# This is the present use :
GET /af/index.php/myURI HTTP/1.1
OK
~
# And this is the wanted use :
GET /af/monURI HTTP/1.1
Но я получаю ошибку 404, либо по умолчанию .htaccess, либо с собственной версией.
.htaccess
По умолчанию .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
Я изменил это следующим образом:
<IfModule mod_rewrite.c>
RewriteEngine On
# RewriteBase /af
# Options +FollowSymLinks
# Isn't the request for a regular file ?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
Структура каталогов
Вотмоя структура каталогов:
/var/www/af
├── app
├── bin
├── src
├── vendor
└── web
├── app_dev.php
├── apple-touch-icon.png
├── bundles
├── config.php
├── favicon.ico
├── .htaccess
├── index.php
└── robots.txt
Я динамически связывал веб / каталог с / var / www / af
Редактировать - я нашел this :
При использовании механизма перезаписи в файлах .htaccess префикс для каждого каталога (который всегда одинаков для определенного каталога) автоматически удаляется для шаблона RewriteRuleсопоставление и добавление автоматически после любой относительной (не начиная с косой черты или имени протокола) подстановкиUnters конец набора правил.См. Директиву RewriteBase для получения дополнительной информации о том, какой префикс будет добавлен обратно к относительным подстановкам.