301重定向没有片段[重复]
Posted
技术标签:
【中文标题】301重定向没有片段[重复]【英文标题】:301 Redirect without fragment [duplicate] 【发布时间】:2013-01-06 18:44:53 【问题描述】:可能重复:URL Fragment and 302 redirects
我需要关于不带特殊字符的 301 重定向的帮助。
例如,我想重定向以下网址:
http://www.iphoneapplications.us/iphone-ipad-mobile-apps-portfolio.html#Gigguid
到以下网址:
http://www.i-phonedeveloper.com/portfolio.html
我已更改 .htaccess
以执行重定向,但片段 #Gigguid
仍保留在最终 URL 中。如何解决这个问题?
【问题讨论】:
特殊字符重定向是什么意思? 哪个特殊字符不适合您?#
?有特殊含义,服务器看不到
显示你的 .htaccess 文件
【参考方案1】:
当前的 HTTP 标准不允许您进行这种重定向 - 至少 HTTP 客户端拒绝这样做。您的浏览器将始终将 #...
部分添加到重定向 URI。
这个#....
被称为Fragment,特殊字符没什么意思(一个URI有很多特殊字符,比如:
、%
、?
和&
),最好使用正确的名称。
下一个 HTTP 标准版本可能会解决这个问题,但它仍然有点脆弱,草案中的含义有时会发生变化,而且由于我无法展望未来,现在如何通过HTTP 的下一个稳定版本。
有关更多信息,请参阅此问题:
URL Fragment and 302 redirects php Location Header Ignore Hash【讨论】:
【参考方案2】:您可以在 htaccess 中使用此代码
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %REQUEST_URI ^(.*)-(.*)\.(html|htm|php)$
RewriteRule ^ /%2.%3 [R=301,L]
样本:
http://www.iphoneapplications.us/iphone-ipad-mobile-apps-portfolio.html?id=3#Gigguid
重定向到:
http://www.i-phonedeveloper.com/portfolio.html?id=3#Gigguid
【讨论】:
以上是关于301重定向没有片段[重复]的主要内容,如果未能解决你的问题,请参考以下文章