如何在PHP中通过HTaccess查找重定向源


how to find redirect source through htaccess in php?

我有一个网站,有很多链接可以重定向到一小组链接。

我使用 htaccess 重定向 301 将用户重定向到 www.example.com/something/something_else/,以 www.example.com/my/collective/url/index.php 某些内容和something_else不是实际文件夹而只是关键字。索引中是否有办法.php知道它是从哪个 url 重定向的?

我试过$_SERVER['HTTP_REFERER']但它什么也没给我。

编辑:我使用的重写规则如下:

RewriteRule ^something/something_else/(.*)$ /my/collective/url/$1 [R=301,L,NE,P]

更新:我最终为重写添加了一个 php 脚本,以便获得HTTP_REFERER。似乎没有办法正确获取它,因为在重定向后,HTTP_REFERER会转到重定向的 url 或完全消失。如果有办法,仍然很乐意得到答案。

您可以使用

$_SERVER['REQUEST_URI']这不会受到RewriteRule的影响,但不会有任何好处,没有纯粹的重定向。

而不是使用这样的行:

RewriteRule ^.*$ index.php [R=301,L]

您可以删除 R=301 部分,以免更改浏览器查看的页面位置,这样,用户就会认为他真的使用/something/something_else 链接登陆了您的页面。这也非常适合搜索引擎优化...请注意不要创建太多指向相同内容的链接......