2014-07-18 97 views
0

我試圖掩蓋,看起來像這樣的URL:的.htaccess重寫規則不正常

http://example.com/test-test-test-test/item.swf?id=122

...以顯示此URL的內容,同時通過對GET參數:

http://example.com/images/item.swf?id=122

這是因爲item.swf實際上並不在test-test-test-test目錄中。我目前使用這個,但它不工作:

RewriteRule ^test-test-test-test/item\.swf\?id=([0-9]+)$ images/item\.swf\?id=$1 [L] 

此.htaccess文件是在我的根文件夾。

回答

1

試試這個:

RewriteCond %{QUERY_STRING} id=([0-9]+) 
RewriteRule ^test-test-test-test/item\.swf /images/item.swf?id=%1 [R,L] 
+0

乾淨簡潔的答案,+1 :) – zx81

0

RewriteRule正則表達式是不是查詢參數,對於這一點,你可以使用[QSA]標誌:

當更換URI包含查詢字符串時, RewriteRule的默認行爲是丟棄現有的查詢字符串,並將其替換爲新生成的查詢字符串。使用[QSA]標誌會導致查詢字符串被合併爲「

示例:

RewriteRule ^test-test-test-test/item\.swf$ images/item.swf [L,QSA] 

希望它有幫助。