为什么这个重定向不起作用?

为什么这个重定向不起作用?

我有一些已发布或共享的 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。

相关内容