Tomcat重写阀问题

标签 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 重写阀记录重写规则命中?

最佳答案

这里有几个问题。 /是分隔符,所以如果要匹配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/

相关文章:

java - Tomcat 8 是否正在读取我的 Java Rest API( war )中的 web.xml 和 context.xml 文件?

tomcat - 如何在 Tomcat 的 save server.xml 中映射多个上下文?

java - 在 Java Web 应用程序中从应用程序服务器外部提供静态数据的最简单方法

asp.net - 在 ASP.NET 网站中隐藏页面 URL

linux - 在 Linux 中启动时 Tomcat 服务器失败

.htaccess - urlencoded 正斜杠破坏了 URL

php - NGINX 重写破坏了索引

web-services - 如何在 Tomcat 8 中部署 HTML 文件和 Web 应用程序?

apache - tomcat 或 apache 自动编码重定向 url

tomcat - 无法使用 Ubuntu 14 访问 Tomcat 7.0