我正在运行Apache 2.4.9。我在.htaccess文件中有这个规则
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} \.(css|js)$
RewriteRule ^.*$ /index.php?url=$0 [L]
除了在这种特殊情况下,它完美无瑕地工作:
当调用/myfolder
(如果“myfolder”文件夹实际存在)时,Apache会将http301返回到url:/myfolder?url=myfolder
我真的不确定是什么原因导致这种重定向。
你有什么想法吗?
谢谢!
答案 0 :(得分:2)
在您的情况下,您可能会在所有其他条件之前添加额外条件。现在它说"如果文件名不是目录而不是文件"或者"如果文件名不是目录并以css / js"结尾,则可以正常工作。
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} \.(css|js)$
RewriteRule ^.*$ /index.php?url=$0 [L]
这是内部重写,因此它不会执行任何类型的重定向。重定向可能来自index.php文件中的header(..)
。