规则:
RewriteRule ^(\w)/(\w)/(\w)$ index.php/$1/$2/$3
测试 URI:
http://localhost/foo/bar/snafu
预期结果:
http://localhost/index.php/foo/bar/snafu
规则似乎根本不匹配。我做错了什么?
在相关说明中,是否有任何方法可以使用 tomcat 重写阀记录重写规则命中?
最佳答案
这里有几个问题。 /
是分隔符,所以如果要匹配URL中的正斜杠,需要使用\/
。由于语法无效,规则将被跳过,该请求将不会传递给 PHP。
此外,\w
表示单个单词字符(A-Z、a-z、0-9 或 _)。因此,只有 /f/b/s
是请求时,您才会匹配。您需要的是 +
,它匹配紧接其前面的一个或多个 - 在本例中为 \w
。
试试这个:
RewriteRule ^(\w+)\/(\w+)\/(\w+)$ index.php/$1/$2/$3
关于Tomcat重写阀问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42563560/