2

在我的 .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)如何获取最后访问的网址(触发错误的网址?

谢谢

4

1 回答 1

2

(1)通过启用 mod_rewrite 和 .htaccesshttpd.conf然后将此代码放在您.htaccessDOCUMENT_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"];
于 2013-08-28T19:38:41.093 回答