自定义错误页面无法直接访问

时间:2013-08-28 18:18:47

标签: php apache .htaccess apache2 errordocument

在我的.htaccess中,我执行以下操作

然后php脚本将用户带到相关页面/显示相关文本

ErrorDocument 400 /error.php?e=400
ErrorDocument 401 /error.php?e=401
ErrorDocument 403 /error.php?e=403
ErrorDocument 404 /error.php?e=404
ErrorDocument 500 /error.php?e=500
ErrorDocument 503 /error.php?e=503

对于我尝试发送自动电子邮件的一些错误。

1)如果不是来自apache,我怎么能阻止直接访问该页面,例如只有键入error.php?e=503的人

2)如何获取访问过的最后一个网址(触发错误的网址?

由于

1 个答案:

答案 0 :(得分:2)

(1)通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess目录下的DOCUMENT_ROOT中:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

ErrorDocument 400 /error.php?e=400
ErrorDocument 401 /error.php?e=401
ErrorDocument 403 /error.php?e=403
ErrorDocument 404 /error.php?e=404
ErrorDocument 500 /error.php?e=500
ErrorDocument 503 /error.php?e=503

# block direct access to /error.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+error\.php[\s?] [NC]
RewriteRule ^ - [F]

(2)使用以下内容/error.php访问原始URI

$_SERVER["REQUEST_URI"];