Redirect JBoss AS 7.1服务器级重定向
我们从Redirect JBoss AS 7.1服务器级重定向,redirect,jboss7.x,Redirect,Jboss7.x,我们从http://domain.tld/webapp/...至http://domain.tld/ourWebapp/... 现在我们要将旧URL重定向到新URL—大多数重定向解决方案都在应用程序内部处理。然而,这是行不通的,因为给定了错误的war名称,webapp根本不会被触发 有没有办法在服务器级别添加重定向,而不是从应用程序内部处理重定向?(我们不想部署一个“重定向应用程序”,监听旧的war名称。) 我发现了这个文档:但它似乎过时了,因为它仍然在谈论server.xml(JBossAS7
http://domain.tld/webapp/...
至http://domain.tld/ourWebapp/...
现在我们要将旧URL重定向到新URL—大多数重定向解决方案都在应用程序内部处理。然而,这是行不通的,因为给定了错误的war名称,webapp根本不会被触发
有没有办法在服务器级别添加重定向,而不是从应用程序内部处理重定向?(我们不想部署一个“重定向应用程序”,监听旧的war名称。)
我发现了这个文档:但它似乎过时了,因为它仍然在谈论server.xml
(JBossAS7.1中没有)。所有提到的元素也不存在,而且似乎不受支持
经过大量测试,我发现这在standalone.xml中是可能的,就在虚拟服务器子系统中。但是,仍然存在一些问题: 到目前为止的工作情况是什么:以下条目将导致预期的远期:
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<virtual-server name="default-host" enable-welcome-root="true">
<alias name="localhost"/>
<rewrite pattern="^/webapp/(.*?)$" substitution="/myWebapp/$1" flags="R=301,L">
</rewrite>
</virtual-server>
</subsystem>
所以基本上是一个独立于协议和/或主机名的重定向
我尝试了一个“相对”重定向(substitution=“/myWebapp/$1”
)-这是可行的,但没有保留端口(请求位于http://ip:8080/webapp/
被转发到http://ip/myWebapp/
)
对此有什么想法吗?终于找到了:
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<virtual-server name="default-host" enable-welcome-root="true">
<alias name="localhost"/>
<rewrite pattern="^/webapp/(.*?)$" substitution="/myWebapp/$1" flags="R=301,L">
</rewrite>
</virtual-server>
</subsystem>
正在按预期工作并保持端口正常。(不知道,为什么第一次尝试时它不起作用,可能没有正确地重新启动服务器,等等。)如果您可以访问RedHat网站,这里也有一些解释和示例:
JBoss EAP6提供了全局重写阀,可在您配置的“web”子系统中启用,如下所示: 要重定向所有针对localhost:8080/MXBeanDemo的http请求,应将其重定向到“www.yahoo.com/”
用于将localhost:8080/Abcd重定向到localhost:8080/Wxyz
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<virtual-server name="default-host" enable-welcome-root="true">
<alias name="localhost"/>
<alias name="example.com"/>
<rewrite pattern="^/Abcd(.*)" substitution="/Wxyz" flags="R"/> <!-- NOTICE -->
</virtual-server>
</subsystem>
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<virtual-server name="default-host" enable-welcome-root="true">
<alias name="localhost"/>
<alias name="example.com"/>
<rewrite pattern="^/MXBeanDemo(.*)" substitution="http://www.yahoo.com" flags="R"/> <!-- NOTICE -->
</virtual-server>
</subsystem>
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<virtual-server name="default-host" enable-welcome-root="true">
<alias name="localhost"/>
<alias name="example.com"/>
<rewrite pattern="^/Abcd(.*)" substitution="/Wxyz" flags="R"/> <!-- NOTICE -->
</virtual-server>
</subsystem>