2017-08-03 142 views
0

嗨我試圖轉換一個這樣的URL;Apache重寫url段和查詢參數

http://www.test.com/segment/aaa?uid=1 

對此;

http://www.test.com/segment/new/aaa/u/1 

這是我能想出的最接近的,但第一個匹配是segment/aaa而不是aaa。我無法找到一種方法來隔離aaa部分,因此我可以將其更改爲segment/new/aaa而不是segment/aaa。

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_URI} ^/segment/(.*) 
RewriteCond %{QUERY_STRING} ^([up])id=(.*)$ 
RewriteRule ^(.*)$ segment/new/$1/%1/%2? [L] 

,這產生的URL是:

https://www.test.com/segment/new/segment/aaa/u/3 

謝謝!

+0

submask'$ 1'包含'segment /'。嘗試這個正則表達式'^ segment /([^ /] *)$' – Deadooshka

+0

這產生了與我上面相同的輸出。爲什麼該匹配包含整個字符串而不是像其他的正則表達式部分? – Jonathan

回答

0

Got it!

RewriteCond %{QUERY_STRING} ^([up])id=(.*)$ [NC] 
RewriteRule ^segment/(.*) segment/new/$1/%1/%2? [L]