Apache-2.2

為什麼這個重定向不起作用?

  • October 20, 2011

我有一些已發布或共享的 URI,我現在需要重定向它們。舊網址採用以下形式:

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。

不可能。錨點不是 URI 或查詢字元串的一部分,因此它們根本不會發送到 Apache。

引用自:https://serverfault.com/questions/323378