Перемещение файла hm для symfony2 в vhost - PullRequest
0 голосов
/ 26 февраля 2012

Я хотел переместить содержимое .htaccess в vhost для повышения производительности и пытаюсь решить проблему.

Это в .htaccess:

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

Я пробовал это в Vhost:

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

Проблема в том, что второй перенаправляет /app_dev.php/ controller в app.php, и он не должен, как в первом примере.

Любые советы очень ценятся.

1 Ответ

0 голосов
/ 26 февраля 2012

С Директива RewriteCond Документы Apache :

REQUEST_FILENAME:

Полный путь локальной файловой системы к файлу или сценарию, соответствующему запросу, если он уже был определен сервером в момент обращения к REQUEST_FILENAME.В противном случае, например, при использовании в контексте виртуального хоста, то же значение, что и REQUEST_URI .

Так что на самом деле вы проверяете, что файл не имеет пути /app_dev.php, которыйне является абсолютным путем, т.е. без добавленного пути DocumentRoot.Итак, вы должны сделать это:

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteRule ^ /app.php [L] 
  • ^(.*)$ в этом нет необходимости, поскольку вы просто переписываете без учета URI.
  • Флаг QSA также не требуется, так как вы не манипулируете какой-либо строкой запроса.
...