2011-11-21 34 views
22

我正在嘗試使用apache .htaccess進行重定向。我有以下代碼如何僅當確切的url匹配時才重定向?

redirectMatch 301 /user http://clients.mydomain.com 

它工作得很好,但我不想「/用戶/登錄」被定向到「http://clients.mydomain.com/login」

我該如何預防?

回答

37

簡單添加^來開始和$到底

^告訴告訴正則表達式匹配的URL

$講述的開頭講述了正則表達式匹配該網址的結尾

redirectMatch 301 ^/user$ http://clients.mydomain.com 

所以現在你的規則將只有馬TCH /user而不是/some/user/user/name/some/user/name


注:如果你想匹配/user//user然後用^/user/?$

?說,到前面的字符/組零至一倍

匹配
+1

檢查尾隨/是個好主意。即使您認爲url是/ user,它仍然會將它隱藏起來,因爲/ user/ – SomethingOn

+0

但是如果您有空格字符''?你需要雙引號才能正確處理。在Redirect的正則表達式中使用轉義'''會導致系統認爲它是一個額外的參數,而不是一個轉義的空間。如果您有雙引號,則不能使用'^'或'$'來指定完全匹配 – ahnbizcad

相關問題