在我的 .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)如何获取最后访问的url(触发错误的url?
谢谢
最佳答案
(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"];
关于php - 自定义错误页面无法直接访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18495372/