我在这个htaccess中出错了,因为/ assets /文件夹不会从重写规则中排除。 当我访问时:http://www.site.com/assets/images/sidebar1/some/pic.pngs未按预期返回404。
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/?(assets|css)/
RewriteRule . index.php
由于
答案 0 :(得分:1)
你的规则说:
在以下情况下将所有内容重写为index.php:
网址不是文件,不是目录,不在/assets/
或/css/
。
您要求的文件不是文件,不是目录,而是assets/
:
这条规则还可以,但是!你的日志显示然后你要求/home/valentin/public_html/404.shtml
(自动重定向未知对象!)
此请求再次通过规则!
它不是文件(!-f匹配),不是目录(!-d匹配),它不在assets/
中,也不在css/
中,然后它被重写为index.php < / p>
Q.E.D。
您可以将404.shtml放在public_html/
文件夹中,或者在apache配置中将其更改为真实文件,从而解决此问题。