将旧锚链接重定向到新锚链接

时间:2016-02-15 04:50:15

标签: .htaccess redirect anchor

我正在检修其他人为我的组织构建的网站。它最初设置的“不太好”的锚链接包括空格。我用新的锚点替换了那些能更好用的锚点。

实施例: 其中一个旧锚点看起来像/course/#To Have,哪些浏览器很幸运地转换为/course/#To%20Have。我把那个锚更改为:/course/#to-have

我现在想要确保任何可能已在社交媒体上分享或可能与其他网站链接的锚点仍然有用;我计划通过.htaccess文件中的重定向来完成此操作,例如:

Redirect 301 /course/#To%20Have /course/#to-have

经过一些研究后,我发现由于网址中的#,这是不可能的。我还没有看到锚被重定向到另一个锚的示例。

这可能吗?

1 个答案:

答案 0 :(得分:0)

正如我的评论所述,persist无法实现这一点。

原因是:哈希部分(称为片段)实际上并未发送到服务器,因此Apache无法将其提取。服务器可能只会在此之前获取所有内容,这在this article的语法部分中进行了描述。

作为替代方案,我建议您在滚动到其位置之前使用JavaScript转换片段。您可以通过提取.htaccess的值来实现这一点(方括号中的部分是可选的,因为[window.]location.hash在全局范围内也可用)(如果存在),如下所示:

location