PHP重写url但保留锚定标记

PHP重写url但保留锚定标记,php,url-rewriting,Php,Url Rewriting,是否可以重写包含#锚定标记的URL,并将该#锚定标记附加到新URL 在我的新闻php脚本中,我检查以确保请求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 != $

是否可以重写包含#锚定标记的URL,并将该#锚定标记附加到新URL

在我的新闻php脚本中,我检查以确保请求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脚本。根据正在执行的操作,它可以将#注释或#注释表单附加到url

如果$url和$realurl不匹配,$realurl+的标题位置与$realurl+不匹配,有没有办法修改上述代码,以保留可能存在的任何#锚定标记


问题解决了-不确定它是如何工作的或为什么工作的,但我最终做的只是改变:

if ($uri != $realurl)


如果$uri不包含我的$realurl,url将被重写,并且#锚定标记仍然保留。

是否尝试将锚定标记连接到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".#someanchortag);
    exit;
}

锚定标记只能在客户端解析,因此您可能需要JS。不,因为根据所做的操作,注释脚本可以附加#注释或#注释#形式您可以发布注释脚本吗?我设法解决了这个问题-(注释脚本太大,无法在此处发布)。
$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;
}