首页 > 解决方案 > Tomcat 9为子域配置301重定向到域

问题描述

如何使用 tomcat 从 www 子域到根域进行 301 重定向。

我尝试了以下但没有成功,www 子域仍在显示。我可能遗漏了一些东西,但我无法弄清楚遗漏了什么。

对于我们在 liferay 7 社区中构建的项目,它是一个多租户,只有一个 tomcat 服务器(前面没有 apache 或 nginx),我需要将使用 www 子域访问的 URL 重定向到根域。

我正在尝试重写阀,但我不知道如何以及在 server.xml 中写入它的位置

我最好的尝试:在 server.xml

    <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
        <!-- Added valve -->    
        <Valve className="org.apache.catalina.valves.rewrite.RewriteValve"/>
      </Host>

我添加了最后一个阀门。

在 WEB-INF 我创建了一个文件:rewrite.config 我添加了:

RewriteCond %{REMOTE_HOST}  ^www.*$
RewriteRule ^www.*   %{REMOTE_HOST}  [L]

我需要的重定向是 301 仅适用于 www 子域,而不适用于 URI。

上述测试不起作用,因为我仍然可以访问 www 子域。

标签: tomcaturl-rewritinghttp-status-code-301tomcat9

解决方案


推荐阅读