我有一些已发布或共享的 URI,现在需要重定向。旧 URL 的形式如下:
http://www.mysite.com/!#story/45我想将它们重定向到http://www.mysite.com/#!story/name-of-the-story
我在 .htaccess 文件(Apache 2.2)中尝试了以下内容
redirect 301 /#!story/45 /#!story/name-of-the-story
或者
RewriteCond %{REQUEST_URI} ^(.*)#!story/45(.*)$
RewriteRule ^(.*)$ /#!story/name-of-the-story [R=301]
但这不会重定向 URL(它只是没有效果)。 !# 语法由我们使用的名为 prettyPhoto 的库生成,该库从 javascript 写入位置哈希:
location.hash = decodeURI('!' + theRel + '/'+story_slug+'/');
有人能解释为什么这不起作用或建议解决这个问题的方法吗?我已启用 mod_rewrite。
答案1
不可能。锚点不是 URI 或查询字符串的一部分,因此它们根本不会发送到 Apache。