我正在尝试使用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