2010-09-28 81 views
3

問題:遊客打開URL website.com/?i=133r534|213213|12312312但此URL不再有效,他們需要被轉發到網站。 COM /#視頻:133r534 | 213213 | 12312312301的.htaccess重寫規則QUERY_STRING

我已經試過:在最後幾個小時,我試過很多mod_rewrite的(.htaccess)是否使用QUERY_STRING規則,都失敗了。 this topic中的最後一條消息爲這個問題提供了一個解決方案,但是在我的情況下會有什麼規則。

我很好奇你將如何解決這個問題:)!

回答

6

以下將處理您顯示的簡單情況。如果需要在查詢字符串或文件名稱之前允許其他參數,則需要添加其他邏輯。

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^i=(.*) 
RewriteRule ^.* /#Video:%1? [NE,R=permanent] 

爲什麼這麼棘手?

  • 重寫規則根本就看不到的查詢字符串,所以你必須使用的RewriteCond評估QUERY_STRING變量和捕捉到的部分,你需要以後
  • 散列字符(#(經由%1引用) )通常會被轉義,您必須指定[NE]標誌
  • 尾隨?需要替換字符串來抑制原始查詢字符串

我在Apache 2.2上測試了這個。

+1

大湯姆!非常感謝,這一個爲我工作,我現在得到的概念:) – MeProtozoan 2010-09-29 10:33:44