报告函数

时间:2017-05-20 20:05:43

标签: php .htaccess

我一直试图让错误页面(404)正常工作,好吧,它确实有效,但我无法报告用户试图访问的文件。

在脚本中我调用了REQUEST_URI

$ requri = getenv(" REQUEST_URI"); 我也试过了 $ requri =($ _SERVER [' REQUEST_URI']);

他们两个似乎都报告了#34; 404.php",这是错误页面本身,而不是他们写的错误地址..

我不知道为什么它认为错误页面是请求的页面... 除非.htaccess命令; ErrorDocument 404 https://mydomain.se/404.php 有问题,但我不认为是。

2 个答案:

答案 0 :(得分:0)

您应该(1)使用路由器处理应用程序中的404或(2)使用ErrorDocument,而不是使用RewriteRule,如this post所示。

完成上述操作后,$_SERVER['REQUEST_URI']确实是您想要的。但你应该从不以原始形式回应它。它很容易包含XSS攻击。相反,假设您只是在屏幕上显示它(而不是在HTML标记的参数中),您可以使用htmlentities(),如

echo htmlentities($_SERVER['REQUEST_URI']);

答案 1 :(得分:0)

确实,您想使用$_SERVER["REDIRECT_URI"]。 我只是抬起头来,有时我会用htmlspecialchars(strip_tags(stripslashes($_SERVER["REQUEST_URI"])))

来做这件事

但请注意,我建议您使用ErrorDocument 404 /404.php(本地而不是完整网址)进行重定向(甚至可以使用单个/error.php作为多个状态代码(例如401和403)并评估{{1 }})