2

抱歉,问题标题令人困惑/含糊。我想不出更好的了。

情况

假设一个页面abc.php有一组锚标签。

<a href="xxx.php">AAA</a>
<a href="xxx.php">BBB</a>
<a href="xxx.php">CCC</a>

如果我点击BBB,有没有办法在里面找到xxx.phpBBB它带到这里的链接?同理,如果CCC被点击,是否可以知道xxx.php重定向是因为CCC链接而发生的?

简而言之,我正在寻找一组重定向到单个页面的链接,并在该页面中确定哪个链接导致了重定向。

PS:我知道我可以做到这一点,query strings但我希望尽可能避免使用它们。此外,我还希望它仅在 PHP 中使用(如果可能,即服务器端;类似的东西$_SERVER['HTTP_REFERER'])。

4

1 回答 1

1

如果您不想在客户端上公开查询字符串(我看不出有理由为您的问题范围避免它们)并且您希望所有操作都在服务器端执行,您可以尝试使用重写规则阿帕奇。

就像是

<a href="xxx_aaa">AAA</a>
<a href="xxx_bbb">BBB</a>
<a href="xxx_ccc">CCC</a>

并在您的 .htaccess 中重写规则,例如:

RewriteRule ^xxx_(.*)$ xxx.php?id=$1

在您的脚本中,您可以知道它的来源

$_REQUEST['id']

是的,即使您没有公开它,最后您也使用了查询字符串,但是像 $_SERVER['HTTP_REFERER'] 这样的解决方案将不起作用。

于 2012-11-21T07:24:30.533 回答