【问题标题】:Can you write a 301 redirect to an anchor point?你能写一个301重定向到一个锚点吗?
【发布时间】:2010-09-28 01:17:04
【问题描述】:

这是有效和正确的吗?

RewriteRule ^myOldPage.html$ /index.php#info [R]

我对@9​​87654322@ 部分特别感兴趣。

【问题讨论】:

    标签: apache mod-rewrite http-headers


    【解决方案1】:

    是的。这是一个有效的 301 重定向(HTTP standard 允许提供任何有效的 URI 作为重定向)。

    现在需要注意的是:并非所有搜索引擎都喜欢重定向。谷歌在处理锚标签方面做得非常出色(他们甚至有一个patent on this),而其他人会完全忽略它们。只要这不是问题,重定向在技术上是有效的。

    更新:如果您在使用 mod_rewrite 时遇到问题,请尝试使用 NE(无转义)标志来防止 # 符号被编码:

    RewriteRule ^myOldPage.html$ /index.php#info [R,NE]
    

    【讨论】:

    • 谢谢!我只是回到这里来谈谈它是如何因为 # 被编码而无法工作的......
    • 如果我们必须指向同一页面上的多个锚点怎么办?例如:#info、#transformation、#coding-environment...
    【解决方案2】:

    虽然看起来正确,但我有一种奇怪的感觉,这行不通。

    浏览器需要知道#anchor。服务器和 mod_rewrite 可能会忽略它。

    如果它不起作用,我猜你可以做类似的事情..

    RewriteRule ^myOldPage.html$ /index.php?info=true [R]
    

    然后在php输出一段javascript做锚点跳转。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      • 1970-01-01
      • 2017-02-11
      • 2013-12-13
      • 2013-05-18
      • 2011-02-05
      相关资源
      最近更新 更多