Javascript 在PHP中,如何将页面重定向到没有散列(#)的URL?

Javascript 在PHP中,如何将页面重定向到没有散列(#)的URL?,javascript,php,.htaccess,redirect,Javascript,Php,.htaccess,Redirect,前言: 我的地址如下: http://www.example.com/#contact http://www.example.com/thanks 成功提交联系人表单后,用户将重定向到以下地址: http://www.example.com/#contact http://www.example.com/thanks 借助以下代码: // Redirect to thank you page redirect_to("thanks"); 函数redirect_to()定义为: // P

前言:

我的地址如下:

http://www.example.com/#contact
http://www.example.com/thanks
成功提交联系人表单后,用户将重定向到以下地址:

http://www.example.com/#contact
http://www.example.com/thanks
借助以下代码:

// Redirect to thank you page
redirect_to("thanks");
函数redirect_to()定义为:

// Page redirection
function redirect_to($url)
{
    if(isset($url) && $url != '')
    {
        header("Location: " . $url);
        exit();
    }
}
感谢页面的htaccess规则为:

# Thanks Page
RewriteRule ^thanks/?$ thanks.php [QSA,L]
#RewriteRule ^thanks/$ thanks.php [QSA,L]
问题:

问题在于散列(#)字符,即片段部分仍然与URL保持一致,如:

http://www.example.com/thanks#contact
如果我将页面重定向到
谢谢
,那么部分
#contact
如何与主URL保持一致


我们如何通过htaccess或PHP甚至通过JS排除/删除它?

这个问题以前被问过

标记为答案的回答是:

“如何停止”的简单答案是在Location标头中指定一个空哈希:

header('Location:/account.html#')

然而,这种行为并不能保证一刀切。在我的快速测试中,它似乎在WebKit和IE9中工作。尽管如此,您还是在HTTP规范中发现了一个黑洞


这个问题以前被问过

标记为答案的回答是:

“如何停止”的简单答案是在Location标头中指定一个空哈希:

header('Location:/account.html#')

然而,这种行为并不能保证一刀切。在我的快速测试中,它似乎在WebKit和IE9中工作。尽管如此,您还是在HTTP规范中发现了一个黑洞


你的解决方案在firefox中不起作用。你的解决方案在firefox中不起作用。首先,没有人像我这样问得那么清楚。不是吗?第二,你提到的解决方案是不可接受的,因为我尝试过,它根本不起作用。它在url的末尾添加了不必要的#。这有什么意义吗?在我看来,这只是一个变通办法,不是一个好的解决方案。但这就是我找到的解决方案,至少在2013年,他们声称这是一个“HTTP规范中的黑洞”。也许你不得不接受它,除非有人有更优雅的解决方案。实际上,试试这里的解决方案,其中一个可能会有帮助:好的,我稍后再试试。但没人告诉我这是怎么回事?片段是如何与主URL组成后缀的?首先,没有人像我这样清楚地问过它。不是吗?第二,你提到的解决方案是不可接受的,因为我尝试过,它根本不起作用。它在url的末尾添加了不必要的#。这有什么意义吗?在我看来,这只是一个变通办法,不是一个好的解决方案。但这就是我找到的解决方案,至少在2013年,他们声称这是一个“HTTP规范中的黑洞”。也许你不得不接受它,除非有人有更优雅的解决方案。实际上,试试这里的解决方案,其中一个可能会有帮助:好的,我稍后再试试。但没人告诉我这是怎么回事?片段如何与主URL组成后缀?