Tomcat 重定向http://www.example.com 到http://example.com

Tomcat 重定向http://www.example.com 到http://example.com,tomcat,tomcat7,tuckey-urlrewrite-filter,Tomcat,Tomcat7,Tuckey Urlrewrite Filter,如何在Tomcat中重定向到?所有文档都集中在Apache上,但我正在托管一个Java应用程序。Apache 这应该是符合 # .htaccess file contents # Apache has the same docroot as the Java web app. # Java webapp is running on port 8084 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # For sites

如何在Tomcat中重定向到?所有文档都集中在Apache上,但我正在托管一个Java应用程序。

Apache 这应该是符合

# .htaccess file contents
# Apache has the same docroot as the Java web app.
# Java webapp is running on port 8084
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# For sites running on a port other than 80
RewriteCond %{HTTP_HOST}   !^domain\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteCond %{SERVER_PORT} !^80$
RewriteRule ^/(.*)         http://domain.com:%{SERVER_PORT}/$1 [L,R]

# And for a site running on port 80
RewriteCond %{HTTP_HOST}   !^domain\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/(.*)         http://domain.com/$1 [L,R]
</IfModule>
#.htaccess文件内容
#Apache与Java web应用程序具有相同的docroot。
#Java webapp正在端口8084上运行
重新启动发动机
重写基/
#对于在80以外的端口上运行的站点
重写cond%{HTTP_HOST}^域名\.com[NC]
重写cond%{HTTP_HOST}^$
重写cond%{SERVER\u PORT}^80$
重写规则^/(*))http://domain.com:%{SERVER_PORT}/$1[L,R]
#对于在端口80上运行的站点
重写cond%{HTTP_HOST}^域名\.com[NC]
重写cond%{HTTP_HOST}^$
重写规则^/(*))http://domain.com/$1[L,R]

雄猫 可以在Tomcat中使用。在/WEB-INF/urlrewrite.xml中,这样的规则应该适用于您:

<rule enabled="true">
    <name>Force HTTPS example</name>
    <note>Automatically redirects user requests.</note>
    <from>http://domain.com/(.*)$</from>
    <to type="permanent-redirect" last="true">http://www.domain.com/</to>
</rule>

强制HTTPS示例
自动重定向用户请求。
http://domain.com/(.*)$
http://www.domain.com/

不确定我是否打错了,在Tomcat8的头上写下了这个-你有这个选项

如果您的站点是单个Web应用程序,请将其添加到ROOT.xml

  <Valve className="org.apache.catalina.valves.rewrite.RewriteValve"/>

这也可以应用于主机级别,因此它可以跨多个Web应用程序工作。

我相信您正在本地环境中尝试这一点

打开“主机”文件并添加ip条目

例如:

“主机”文件位于以下位置,具体取决于操作系统

如果您在Windows中

C:\Windows\System32\drivers\etc\hosts
如果您在Linux中

/etc/hosts
打开浏览器并立即尝试。这两种方法都适用(example.com或www.example.com)。 在托管环境中,这将在DNS级别得到处理。所以不用担心


注意:这将在您修改了主机文件的机器上运行。

@BlueDevice2K是的,我把它们弄混了。@Margus“不确定我是否输入了错别字,把它写在了头上”-这就是为什么您忘记编辑“Force HTTPS示例”?您正在开发的是这个应用程序吗?您可以通过添加额外文件来修改此应用程序吗?这不是重复的吗?我在这个问题上使用了配置,它工作起来很有魅力。谢谢你给我指出了正确的方向。下面是我解决问题的方法:首先,我将
添加到
conf/context.xml
,然后
RewriteCond%{HTTP\u HOST}^example.com$[NC]
RewriteRule^/(.*)http://www.example.com/$1[R=301,L]
到我的
WEB-INF
文件夹中的
rewrite.config
。但是请注意,example.com会重定向到www.example.com。
C:\Windows\System32\drivers\etc\hosts
/etc/hosts