2012-03-31 77 views
0

我試圖使用mod_rewrite重寫規則,並在我的重寫規則,我想匹配在查詢字符串,看起來網址,如:mod_rewrite的重寫規則模式匹配失敗URL編碼

HTTP:/ ?//myfakeoam/obrareq.cgi ....

我重寫規則是這樣的:

RewriteEngine敘述在

的RewriteCond%{QUERY_STRING}^WH = $ [NC]

(*)。

重寫規則^/myfakeoam/obrareq.cgi $ http://apache1.whatever.com/formbasicprotected/index.html [CO = WH:%1:.whatever.com:1440:/]

當我手動測試,通過手動鍵入的URL到瀏覽器,即重寫規則似乎要能夠匹配的請求如果請求的樣子:

HTTP:///myfakeoam/obrareq.cgi WH = XXX & RU = YYYY & ....

,但是,在我的實際系統中,該請求是由另一個應用程序創建的,並且它似乎是查詢字符串的URL編碼(實際上是URL編碼的兩倍)(例如,用「%3D」等替換等於),即:

HTTP:///myfakeoam/obrareq.cgi WH%3Dxxx ....

如果查詢字符串部分是URL編碼一樣,在我的重寫規則的模式匹配沒有失敗......

有什麼辦法可以處理這種情況?

感謝, 吉姆

+0

我想,之所以其他應用程序是雙URL編碼的查詢字符串的,因爲這樣的事情(http://blog.perplexedlabs.com/2008/03/20/mod_rewrite- URLEncode的-和特殊字符/)?但是,那麼我可以製作一個RewriteRule來處理這個傳入的請求嗎?吉姆 – user555303 2012-03-31 01:01:53

回答

0

回答我的問題,我剛剛意識到的RewriteCond只是在做的查詢字符串正則表達式匹配,所以我改變了到:

的RewriteCond%{QUERY_STRING}^wh%3D(。*)$ [NC]

然後它工作。

吉姆