0

是否可以重写包含 #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 标记仍然存在。

4

1 回答 1

0

您是否尝试将锚标记连接到 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;
}
于 2013-04-23T04:49:06.810 回答