我想将.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并且它不会像第一个例子那样。
非常感谢任何提示。
答案 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
也不是必需的,因为您没有操纵任何查询字符串。