是否可以重写包含 #anchor 标记的 URL - 并将该 #anchor 标记附加到新 url?
在我的新闻 php 脚本中,我检查以确保 request_uri 与我存储在 MySQL 数据库中的数据相匹配。如果不是,我将 301 标头和标头位置发送到正确的 URL。
$uri = $_SERVER['REQUEST_URI'];
// Grab the $sid and $url stored in the MySQL table and set it as $realurl
$realurl = "/$sid/$url/";
if ($uri != $realurl)
{
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: $realurl" );
exit;
}
这对我来说效果很好,但问题是我最近在我的新闻页面中添加了一个评论 php 脚本。根据正在执行的操作,它可以将 #comments 或 #comment_form 附加到 url。
有没有办法修改上面的代码,所以如果 $url 和 $realurl 不匹配 - $realurl 的标头位置 + 保留任何可能存在的 #anchor 标记?
问题已解决- 不知道它是如何工作或为什么工作,但我最终所做的只是改变:
if ($uri != $realurl)
至
if (stristr($uri, $realurl) === false)
如果 $uri 不包含我的 $realurl,则 url 将被重写并且 #anchor 标记仍然存在。