我已经使用我自己的MVC系统一段时间了,它的效果非常好!
我在我的.htaccess中使用它
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?page=$1 [QSA,L]
现在,当页面(控制器)不存在时,我会重定向到/ error (在index.php文件中)。 但有些情况下,图片将在文件夹中删除,并仍然在html页面中打印。这将自动使浏览器调用不存在的图片(因此它将调用/错误页面)
现在我想要做的是,当一张图片或任何文件(我估计除了php,html文件)之外,我想重定向到404文件而不是/ error。
我确信这可以在.htaccess文件中解决,但我和Apache目前还不是那么好的。谁是Apache的朋友?
谢谢!
答案 0 :(得分:1)
假设您的图片位于公共子文件夹中,例如/images
中的http://example.com/images/img.png
,您可以更改规则以完全排除此子目录,然后添加错误文档。这个.htaccess应该在你的www-root中。
RewriteEngine On
#If the file does not exist, and the url doesn't start with /images
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !^/images
RewriteRule ^(.+)$ index.php?page=$1 [QSA,L]
#If the rule above didn't match, and the file does not exist, use the ErrorDocument
ErrorDocument 404 /404.php
见