2015-03-30 60 views
0

我需要檢查一個文件夾中的UIRI是否包含任何查詢參數,如果沒有,添加查詢參數和重定向uri瀏覽器也使用Apache重寫規則。對於這一切的URL開始/abc/def/xyz/的網址應以?v=2追加,如果不是已經有一個查詢參數重寫規則重定向的URI沒有查詢參數後追加查詢參數

例如,/abc/def/xyz/folder/test.pdf應該成爲/abc/def/xyz/folder/test.pdf?v=2

/abc/def/xyz/folder1/test.pdf?v=3應保持不變。

我能夠使用下面添加查詢參數,但它會導致無限的重定向。這就是爲什麼我需要選擇重定向

RewriteRule ^abc/def/xyz/(.*) /abc/def/xyz/$1?v=2 [L,R=301] 

以下不與查詢參數將瀏覽器重定向URL到新的URI:

RewriteRule ^abc/def/xyz/(.*) /abc/def/xyz/$1?v=2 [PT,L] 

回答

2

您可以使用RewriteCond檢查查詢字符串。我想下面應該做的伎倆。如果有可用的查詢字符串,則會跳過該規則。否則,它會追加查詢字符串v=2

RewriteCond %{QUERY_STRING} ^$ 
RewriteRule ^abc/def/xyz/(.*)$ /abc/def/xyz/$1?v=2 [L, R=301] 

希望它有幫助。