是否可以重写包含#anchor标记的网址 - 并将#anchor标记附加到新网址?
在我的新闻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和$ realurl不匹配 - $ realurl的标题位置+保留可能存在的任何#anchor标记?
解决了问题 - 不确定它是如何工作或为何工作,但我最终做的就是改变:
if ($uri != $realurl)
到
if (stristr($uri, $realurl) === false)
如果$ uri不包含我的$ realurl,则会重写url并且#anchor标记仍然存在。
答案 0 :(得分:0)
您是否尝试将锚标记连接到网址的末尾?
$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".#someanchortag);
exit;
}