你能写一个301重定向到锚点吗?

时间:2008-12-22 16:44:13

标签: apache mod-rewrite http-headers

这是否有效且正确?

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

我对#info部分特别感兴趣。

2 个答案:

答案 0 :(得分:5)

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

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

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

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

答案 1 :(得分:0)

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

浏览器需要了解#anchor。服务器和mod_rewrite可能只是忽略它。

如果它不起作用我想你可以做类似的事情。

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

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