我一直试图让错误页面(404)正常工作,好吧,它确实有效,但我无法报告用户试图访问的文件。
在脚本中我调用了REQUEST_URI
$ requri = getenv(" REQUEST_URI"); 我也试过了 $ requri =($ _SERVER [' REQUEST_URI']);
他们两个似乎都报告了#34; 404.php",这是错误页面本身,而不是他们写的错误地址..
我不知道为什么它认为错误页面是请求的页面... 除非.htaccess命令; ErrorDocument 404 https://mydomain.se/404.php 有问题,但我不认为是。
答案 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 }})