Tomcat重写阀门问题

时间:2017-03-02 18:50:38

标签: tomcat url-rewriting tomcat8

规则:

RewriteRule ^(\w)/(\w)/(\w)$ index.php/$1/$2/$3

测试URI:

http://localhost/foo/bar/snafu

预期结果:

http://localhost/index.php/foo/bar/snafu

该规则似乎根本不匹配。我做错了什么?

在相关的说明中,有没有办法用tomcat重写阀记录重写规则命中?

1 个答案:

答案 0 :(得分:0)

这里有几个问题。 /是分隔符,因此如果要匹配URL中的正斜杠,则需要使用\/。由于语法不有效,因此将跳过该规则,并且该请求不会传递给PHP。

此外,\w表示单个字符(A-Z,a-z,0-9或_)。因此,只有在请求/f/b/s时才会匹配。您需要的是+,它与之前的一个或多个匹配 - 在本例中为\w

试试这个:

RewriteRule ^(\w+)\/(\w+)\/(\w+)$ index.php/$1/$2/$3