Apache .htaccess排除要重写的目录
我在这个htaccess中错了,因为/assets/folder并没有被排除在重写规则之外。 当我访问时:返回404不是我所期望的Apache .htaccess排除要重写的目录,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我在这个htaccess中错了,因为/assets/folder并没有被排除在重写规则之外。 当我访问时:返回404不是我所期望的 Options -Indexes RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/?(assets|css)/ RewriteRule . index.php 谢谢您的规则
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/?(assets|css)/
RewriteRule . index.php
谢谢您的规则是:
在以下情况下,将所有内容重写为index.php:
URL不是文件,也不是目录,不在/assets/
或/css/
中
您请求的文件不是文件,也不是目录,并且位于资产/
中:
所以这条规则没问题,但是!您的日志显示您正在请求/home/valentin/public\u html/404.shtml
(未知对象的自动重定向!)
这个请求再次通过了规则
它不是一个文件(!-f匹配),也不是一个目录(!-d匹配),它既不在assets/
中,也不在css/
中,然后被重写到index.php
Q.E.D
您可以通过将404.shtml放入您的
public\u html/
文件夹来纠正此问题,或者在apache配置中将其更改为真实文件。谢谢您的回答,我在文件夹中添加了404.shtml,然后我得到了相同的结果。404浏览器不是cusom浏览器吗?请参阅新日志我认为404.shtml在apache配置中的某个地方被索引了。在您的配置文件中搜索类似“errordocument404/404.shtml”的内容。是的,谢谢,似乎这就是问题所在。来自apache的定制ErrorDocument:)祝您有愉快的一天