如何在精确网址匹配时重定向?

Moo*_*oon 32 .htaccess redirect

我正在尝试使用apache .htaccess重定向.我有以下代码

redirectMatch 301 /user http://clients.mydomain.com
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但我不希望将"/ user/login"定向到"http://clients.mydomain.com/login".

我该如何预防呢?

Jef*_*ert 51

简单地添加^到开头和$到结尾

^ tell告诉正则表达式匹配url的开头

$ tell告诉正则表达式匹配url的结尾

redirectMatch 301 ^/user$ http://clients.mydomain.com
Run Code Online (Sandbox Code Playgroud)

所以,现在您的规则将只匹配/user,而不是/some/user/user/name/some/user/name


注意:如果你想匹配/user//user再使用^/user/?$

? 说要匹配前一个字符/组零到一次

  • 检查尾随 / 是个好主意。Firefox 会隐藏它,因此即使您认为 url 是 /user 它实际上是作为 /user/ 传递的 (2认同)

cas*_*key 2

使用正则表达式,您已经在使用重定向匹配。

http://httpd.apache.org/docs/2.0/mod/mod_alias.html#redirectmatch

'$' 匹配 url 的结尾。在你的例子中:

redirectMatch 301 ^/user/(.+)$ http://clients.example.com/
Run Code Online (Sandbox Code Playgroud)