我基本上想要做的是将任何404请求重定向到/404/
,但之后我想让它“拉”'将页面保留为index.php?error=404
,同时将URL保留为/404/
- 然后我可以使用PHP获取引用(使用$ _SERVER [' HTTP_REFERER']`)。
我认为ReWrite规则应该在ErrorDocuments之前,所以我的.htaccess文件如下所示:
RewriteRule ^404/$ /index.php?error=404
ErrorDocument 404 /404/
我知道我可能在上面做了一些有趣的错误,因为404页面/ $ _ SERVER没有得到引用URL(可能是因为ErrorDocument)。
index.php页面获取通过它路由的所有内容(非常标准,我收集)并且发送执行标头重定向到/ 404 / if / when找不到页面/文件。虽然如果有人要错误地将URL输入浏览器,我想获得原始请求,但是因为页面正在被重定向,那么它是否仍然是PHP中的引用者?
答案 0 :(得分:0)
我建议您直接使用error.php
文件来执行此操作:
ErrorDocument 404 error.php
然后,您可以将该文件用作代理,将所有需要的信息注入index.php
。如果您需要找到apache状态代码(以及其他有用信息),请查看$_SERVER
超全局数组。
这样做可以提供更好的控制级别,您可以更轻松地处理服务器差异,以防您需要将应用程序从一台服务器迁移到另一台服务器。