.htaccess 301不带片段重定向[重复]

jgwigjjp  于 2022-11-16  发布在  其他
关注(0)|答案(2)|浏览(123)

此问题在此处已有答案

9年前关闭了。

可能重复:

URL Fragment and 302 redirects
我需要帮助有关301重定向没有特殊字符。
例如,我想重定向以下URL:

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

转到以下URL:

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

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

puruo6ea

puruo6ea1#

当前的HTTP标准不允许这样的重定向--至少HTTP客户端拒绝这样做。您的浏览器总是将#...部分添加到重定向URI中。
这个#....被称为 Fragement,顺便说一句,特殊字符并没有说太多(一个URI有很多特殊字符,如:%?&),最好使用正确的名称。
下一个HTTP标准版本很可能会解决这个问题,但它仍然有点脆弱,在草案中有时会改变含义,因为我不能展望未来,所以在下一个稳定的HTTP版本中如何做到这一点还为时过早。
有关详细信息,请参阅此问题:

ykejflvf

ykejflvf2#

您可以在.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

相关问题