我正在嘗試使用apache .htaccess進行重定向。我有以下代碼如何僅當確切的url匹配時才重定向?
redirectMatch 301 /user http://clients.mydomain.com
它工作得很好,但我不想「/用戶/登錄」被定向到「http://clients.mydomain.com/login」 。
我該如何預防?
我正在嘗試使用apache .htaccess進行重定向。我有以下代碼如何僅當確切的url匹配時才重定向?
redirectMatch 301 /user http://clients.mydomain.com
它工作得很好,但我不想「/用戶/登錄」被定向到「http://clients.mydomain.com/login」 。
我該如何預防?
使用正則表達式,您已經使用重定向匹配。
http://httpd.apache.org/docs/2.0/mod/mod_alias.html#redirectmatch
'$' 的網址的結尾匹配。在您的例子:
redirectMatch 301 ^/user/(.+)$ http://clients.example.com/
簡單添加^
來開始和$
到底
^
告訴告訴正則表達式匹配的URL
$
講述的開頭講述了正則表達式匹配該網址的結尾
redirectMatch 301 ^/user$ http://clients.mydomain.com
所以現在你的規則將只有馬TCH /user
而不是/some/user
或/user/name
或/some/user/name
注:如果你想匹配/user/
和/user
然後用^/user/?$
?
說,到前面的字符/組零至一倍
檢查尾隨/是個好主意。即使您認爲url是/ user,它仍然會將它隱藏起來,因爲/ user/ – SomethingOn
但是如果您有空格字符''?你需要雙引號才能正確處理。在Redirect的正則表達式中使用轉義'''會導致系統認爲它是一個額外的參數,而不是一個轉義的空間。如果您有雙引號,則不能使用'^'或'$'來指定完全匹配 – ahnbizcad