【问题标题】:.htaccess redirect - does this work for all anchor links in page?.htaccess 重定向 - 这对页面中的所有锚链接都有效吗?
【发布时间】:2012-02-13 04:11:15
【问题描述】:

我正在将大量内容从平面文件网站移植到 Wordpress,并为每个页面设置我的 .htaccess 重定向,如下所示:

redirect 301 /01-chapter1.html  http://www.mydomain.com/section1/chapter-1/

在此内容中有许多锚链接定义如下:

<a name="106">Link 106</a>

我的问题是,上面的重定向是否也会处理这些锚链接,以便旧页面锚:

http://www.mydomain.com/01-chapter1.html#106

被重定向到新的页面锚点:

http://www.mydomain.com/section1/chapter-1/#106

希望如此,并且我不必为数千个锚点实现单独的重定向:(

非常感谢您的建议。


回答

好吧,我实现了我发布的原始重定向:

redirect 301 /01-chapter1.html  http://www.mydomain.com/section1/chapter-1/

测试了这个 FF/IE/Chrome,无论出于何种原因,重定向的行为似乎与我希望的完全一样,没有任何额外的参数。

外部链接:

http://www.mydomain.com/01-chapter1.html#106

正在完美地重定向到页面内的锚链接:

http://www.mydomain.com/section-1/chapter-1/#106

谢谢你的好建议,但到目前为止一切都很好!

【问题讨论】:

  • 很好,你自己发现了,但下次先做这个简单的测试,然后再浪费别人的时间。尽管如此,欢迎使用 StackOverflow。

标签: wordpress .htaccess redirect anchor


【解决方案1】:

遗憾的是,它没有这样做。看看这篇博文: http://www.mikeduncan.com/named-anchors-are-not-sent/

您可以尝试使用 JavaScript 重定向客户端。

编辑:更多信息:

301 Redirect Cheatsheet 显示了许多重定向选项。结合从Can you write a 301 redirect to an anchor point? 收集的信息,意味着我们可以编写如下内容:

RewriteRule ^01-chapter1.html(#.+)?$ /section1/chapter-1/$1 [R=301,NE]

虽然不太确定正则表达式语法,但可能需要其他内容。

【讨论】:

  • 废话 - 我有超过 4000 个命名的锚链接被各种外部网站用来访问我的内容。你提到的这个 js 选项的任何指针(不是我的包)?
  • 查看redirection cheatsheet。我想你可能只用 mod_rewrite 就可以做到这一点,看看这个问题:stackoverflow.com/questions/386709/…
  • @user9373 我已编辑答案以显示新信息。
  • 感谢您的链接,但不认为他们会帮助处理传入链接 - 似乎处理页面重定向而不是确保前往 01-chapter1.html#106 的人进入章节-1/#106
  • @user9373 请查看我对答案所做的编辑,我认为此重写规则会将用户重定向到新页面,同时保持锚点完好无损。
猜你喜欢
  • 1970-01-01
  • 2013-10-21
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 2018-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多