301 重定向而不带片段



可能的重复项:
网址片段和 302 重定向

我需要帮助有关没有特殊字符的 301 重定向。

例如,我想重定向以下 URL:

http://www.example.com/iphone-ipad-mobile-apps-portfolio.html#Gigguid

到以下网址:

http://www.example.com/portfolio.html

我已经更改了.htaccess来执行重定向,但片段#Gigguid保留在最终 URL 中。如何解决这个问题?

当前的HTTP标准不允许你做这样的重定向 - 至少HTTP客户端拒绝这样做。您的浏览器将始终将#...部分添加到重定向 URI。

顺便说一下,这个#....叫做Fragement,特殊字符并不多说(一个URI有很多特殊字符,如:%?&),最好为此使用正确的名称。

下一个HTTP标准版本可能会解决这个问题,但它仍然有点脆弱,草案中的含义有时会发生变化,由于我无法展望未来,现在还为时过早,这将如何与下一个稳定的版本完成HTTP。

有关更多信息,请参阅此问题:

  • 网址片段和 302 重定向
  • PHP 位置标头忽略哈希

您可以在.htaccess中使用此代码:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase   /
RewriteCond %{REQUEST_URI} ^(.*)-(.*).(html|htm|php)$
RewriteRule ^ /%2.%3 [R=301,L]

样本:

http://www.example.com/iphone-ipad-mobile-apps-portfolio.html?id=3#Gigguid

重定向至:

http://www.example.com/portfolio.html?id=3#Gigguid

相关内容

  • 没有找到相关文章

最新更新