2011-11-21 38 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

相关问题