将symfony2 htaccess文件移动到vhost中

时间:2012-02-26 19:11:10

标签: mod-rewrite symfony

我想将.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/控制器重定向到app.php并且它不会像第一个例子那样。

非常感谢任何提示。

1 个答案:

答案 0 :(得分:0)

来自RewriteCond Directive Apache Docs

  

<强> REQUEST_FILENAME:

      与请求匹配的文件或脚本的完整本地文件系统路径(如果在引用REQUEST_FILENAME时服务器已确定)。否则,例如在虚拟主机上下文中使用时,与REQUEST_URI 的值相同。

所以你实际测试的是不是文件的路径/app_dev.php不是绝对路径,即没有DocumentRoot路径前置。所以,你必须这样做:

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteRule ^ /app.php [L] 
  • ^(.*)$没有必要这样做,因为你只是在不考虑URI的情况下进行重写。
  • 标记QSA也不是必需的,因为您没有操纵任何查询字符串。