【问题标题】:301 Redirect without fragment [duplicate]301重定向没有片段[重复]
【发布时间】: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 文件

标签: php .htaccess redirect uri fragment-identifier


【解决方案1】:

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

这个#....被称为Fragment,特殊字符没什么意思(一个URI有很多特殊字符,比如:%?& ),最好使用正确的名称。

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

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

【讨论】:

    【解决方案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

    【讨论】:

      猜你喜欢
      • 2015-05-30
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多