Php 带重写的错误文档,仍然获得引用

Php 带重写的错误文档,仍然获得引用,php,.htaccess,error-handling,Php,.htaccess,Error Handling,我基本上想做的是将任何404请求重定向到/404/,然后我想让它将页面“拉”到index.php?error=404,同时将URL保留为/404/,这样我就可以使用php(使用$\u SERVER['HTTP\u referer']`)获取referer 我认为重写规则应该优先于ErrorDocuments,因此我的.htaccess文件如下所示: RewriteRule ^404/$ /index.php?error=404 ErrorDocument 404 /404/ 我知道我可能在上面

我基本上想做的是将任何404请求重定向到
/404/
,然后我想让它将页面“拉”到
index.php?error=404
,同时将URL保留为
/404/
,这样我就可以使用php(使用$\u SERVER['HTTP\u referer']`)获取referer

我认为重写规则应该优先于ErrorDocuments,因此我的.htaccess文件如下所示:

RewriteRule ^404/$ /index.php?error=404
ErrorDocument 404 /404/
我知道我可能在上面做了一些根本性的错误,因为404 page/$\u服务器没有引用URL(可能是因为ErrorDocument)


php页面获取通过它路由的所有内容(我收集到一些非常标准的内容),并在找不到页面/文件时执行头重定向到/404/if/。虽然如果有人在浏览器中输入了错误的URL,我希望得到原始请求,但是由于页面仍在重定向,在PHP中是否仍然是引用者?

我建议您直接使用
error.PHP
文件以不同方式执行此操作:

ErrorDocument 404 error.php
然后,您可以使用该文件作为代理,将所有需要的信息注入
index.php
。如果需要查找apache状态代码(以及其他有用信息),请查看
$\u服务器
超全局数组


这样做可以让您获得更好的控制级别,并且在需要将应用程序从一台服务器迁移到另一台服务器时,您可以更轻松地处理服务器差异。

感谢您的建议-我决定不重定向到/404/但将改为发送PHP中的404头错误和mini CMS中的一些文本。