.htaccess和自定义ErrorDocument用于不同的文件类型

时间:2010-01-26 07:00:47

标签: .htaccess mod-rewrite errordocument

我想知道是否可以使用mod重写以及ErrorDocument减速来根据请求的文件类型自定义错误页面。

例如,请求不存在的html或php文件Apache将提供很好的自定义HTML页面。

但如果请求一个不存在的图像,js,css等文件,那么Apache将提供一个基本的html文件,其上只有一个链接。

这种行为的一个很好的例子是Facebook。尝试请求一个虚假的JavaScript文件,如果你要请求一个不存在的php文件,你会收到一个不同的页面。

3 个答案:

答案 0 :(得分:2)

使用ErrorDocument和RewriteRules的组合结束这是有效的,因为php页面会为我抛出404 Not Found。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .*(?<!.js|.css|.ico|.txt|.bmp|.gif|.png|.jpeg|.jpg)$ /error/404.php [L]

ErrorDocument 404 /404_basic.html

答案 1 :(得分:0)

使用RewriteCond !-f以及重写所需的输出页面和R=404的标记。

答案 2 :(得分:-1)

您可以在404页面中使用PHP脚本:

ErrorDocument 404 /error404.php

在那里,您可以使用PHP分析URL路径(请参阅$_SERVER['REQUEST_URI']),并确定已请求或预期的资源类型。