2011-10-06 50 views

回答

0

最有可能你的http://domain.com/subpage已經是一個重寫URL?

試試這個:

RedirectMatch "^/mysubpage/(.*)" http://domain.com/page/$1? [R=301,L] 

的問號在您的重定向目的地的結束是防止附加舊的查詢字符串給它(這是默認行爲)。

1

我認爲這是因爲?在你的重定向匹配正則表達式中,但我不完全確定你想要做什麼。如果你想要獲取的最後一個斜槓(什麼是出現在您的URI =子)以下的水珠和使用,作爲一個不同的URI的一部分,那麼你想要的是像這樣

RedirectMatch "^/mysubpage/(.*)" http://domain.com/page/$1 [R=301,L] 

這將採取任何請求http://domain.com/mysubpage/alpha.php並將其重定向至http://domain.com/page/alpha.php。如果在另一方面,你不關心什麼是在請求中的斜線後mysubpage那麼你可以做這樣的事情:

RedirectMatch "^/mysubpage/.*" http://domain.com/page [R=301,L] 

這將下降請求的其餘部分,並重定向到http://domain.com/page

HTH

+0

我不在乎斜線後面是什麼。我嘗試了你的第二個例子,但仍然把舊的uri作爲重定向後的查詢字符串:'http://domain.com/page/?uri =/mysubpage /' – Dejan

+0

也是'?'在我的RedirectMatch中是將前面的/標記爲可選項。 – Dejan