2015-05-19 87 views
2

我想添加一個重定向爲.htaccess如下:如何讓mod_rewrite在查詢字符串中放置非字母數字字符?

RewriteRule ^resources/reports /resources?f[0]=field_resource_type%3Areports [R=301,L] 

然而,它改寫爲資源F%5b0%5D = field_resource_typeAreports不工作? [和]字符在不需要時編碼,並且%3A似乎丟失。

如果我將確切的替換字符串複製粘貼到瀏覽器中,那麼它沒有問題,但我似乎無法添加RewriteRule來執行此操作。

我試過添加[B]和[NE],但它們似乎沒有任何區別。

任何人都必須這樣做嗎?

回答

2

您需要:

  1. 逃生%的目標,否則%3將被處理的背參考
  2. 使用NE(非編碼)標誌

使用此規則:

RewriteRule ^resources/reports /resources?f[0]=field_resource_type\%3Areports [R=301,L,NE] 

清除後清零瀏覽器緩存。

+0

謝謝,這有幫助。但現在我得到 資源?f%5b0%5d = field_resource_type%253Areports 改爲。你知道我怎樣才能完全刪除編碼,所以它作爲[,]和%進入URL? – TheBarnacle

+0

不,我在我的Apache上正確地獲得'[',']'和'%3A'。我將'http:// localhost/resources /?f [0] = field_resource_type%3Areports'作爲最終的重定向URL。確保你有'NE'標誌和清除瀏覽器緩存。 – anubhava

+1

啊,是的!現在添加網元並清除緩存。非常感謝! – TheBarnacle

相關問題