【问题标题】:Tomcat 9: valve redirection of http to https only works for base URL?Tomcat 9:http 到 https 的阀门重定向仅适用于基本 URL?
【发布时间】:2022-01-17 08:51:42
【问题描述】:

我们有一个基于 Tomcat 的服务器,其中端口 80 和端口 443 均有效且工作正常。我们最近添加了一个阀门,用于将所有请求从端口 80 重定向到端口 443,其 rewrite.config 如下:

RewriteCond %{SERVER_PORT} =80
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,NE,L]

重启后,我们的基础http://server.url 被正确重定向到https://server.url。所以我们知道tomcat正在识别context.xml和rewrite.config文件的变化。

但是,如果 URL 中有路径,则重定向不起作用:例如,带有 http://server.url/login.html 书签的任何人都不会重定向到 https。现有功能不会丢失(他们能够登录),它们只是没有被转移到端口 443。

需要哪种阀门规则(模式)来确保所有 URL 的重定向?

【问题讨论】:

    标签: tomcat9 tomcat-valve


    【解决方案1】:

    RewriteRule 是为 Tomcat 8 格式化的,不适合 Tomcat 9。 在 Tomcat 9 中正确重定向所有 URL 的等效规则是:

    RewriteRule ^/?(.*) https://server.url/$1 [R,NE,L]

    将 server.url 替换为服务器的主机名。

    【讨论】:

      猜你喜欢
      • 2019-10-23
      • 2014-06-11
      • 1970-01-01
      • 2017-12-28
      • 2018-12-23
      • 2015-04-05
      • 1970-01-01
      • 2012-10-09
      • 2016-07-15
      相关资源
      最近更新 更多