规则:
RewriteRule ^(\w)/(\w)/(\w)$ index.php/$1/$2/$3
测试URI:
http://localhost/foo/bar/snafu
预期结果:
http://localhost/index.php/foo/bar/snafu
该规则似乎根本不匹配。我做错了什么?
在相关的说明中,有没有办法用tomcat重写阀记录重写规则命中?
答案 0 :(得分:0)
这里有几个问题。 /
是分隔符,因此如果要匹配URL中的正斜杠,则需要使用\/
。由于语法不有效,因此将跳过该规则,并且该请求不会传递给PHP。
此外,\w
表示单个字符(A-Z,a-z,0-9或_)。因此,只有在请求/f/b/s
时才会匹配。您需要的是+
,它与之前的一个或多个匹配 - 在本例中为\w
。
试试这个:
RewriteRule ^(\w+)\/(\w+)\/(\w+)$ index.php/$1/$2/$3