您显示的连接器配置不会以您想象的方式重定向特定 URL。
CONFIDENTIAL
如果您已经为该 servlet 容器内的 Web 应用程序配置了传输保证,那么该配置就会起作用。
我的意思是,如果您在该连接器上部署了任何应用程序,其web.xml
描述符security-constraint
如下所示:
<security-constraint>
<web-resource-collection>
<web-resource-name>Secured</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
...
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
然后,Tomcat 会将任何匹配重定向url-pattern
到配置的端口,以便使用 HTTPS 作为传输机密性的保证。
所以,如果你想重定向一个特定的 URL,你必须用特定的应用程序配置来补充连接器的配置。
编辑
正如您在评论中所建议的那样,这可能是使此配置正常工作的另一个步骤。一旦您配置了如图所示的 http 连接器,然后按照我告诉您的配置了应用程序,您只需确保您的 Tomcat 服务器配置了 HTTPS 连接器,否则重定向将不起作用。
要配置此 HTTPS 连接器,您可以使用如下配置:
<Connector connectionTimeout="20000"
acceptCount="100" scheme="https" secure="true"
port="443" clientAuth="false" sslProtocol="TLS"
keystoreFile="PATH_TO_KEY_STORE"
keystorePass="KEY_STORE_PASS"
keyAlias="KEY_STORE_ALIAS"/>
这是一个示例配置,我没有将一些对您很重要的属性作为线程 attrs、executors 等放置。
最重要的是提供 HTTPS 连接所需的 KeyStore 配置。这里有官方文档,可以为 Tomcat 准备一个 java KeyStore 来服务 HTTPS。