是否可以在war-file之外使用rewrite.properties和jboss-web.xml?
目前我将这两个文件放入我的war文件中的WEB-INF中,它按预期工作。但集成测试(使用Maven)将失败,因为它们被重定向到真实网站而不是使用测试中的版本。
我的域直接指向war文件的上下文路径,如果重要的话。我正在使用JBoss 7.1.1。
我试图将两个文件放在war-file旁边的服务器上,但这不起作用。
答案 0 :(得分:1)
我将配置移动到standalone.xml(对于OpenShift用户,它位于文件夹.openshift/config
中)。关于url重写的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="false">
<alias name="localhost"/>
<!-- Redirect all subdomains including naked domain to www subdomain. -->
<!-- RewriteCond %{HTTP_HOST} !^www\.example\.org$ [NC] -->
<!-- RewriteRule ^(.*)$ http://www.example.org/$1 [R=301,L] -->
<rewrite pattern="^(.*)$" substitution="http://www.example.org$1" flags="R=301,L">
<condition test="%{HTTP_HOST}" pattern="!^www\.example\.org$" flags="NC"/>
</rewrite>
<!-- Redirect from HTTP to HTTPS. -->
<!-- RewriteCond %{HTTP:X-Forwarded-Proto} http -->
<!-- RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L] -->
<rewrite pattern=".*" substitution="https://%{HTTP_HOST}%{REQUEST_URI}" flags="R,L">
<condition test="%{HTTP:X-Forwarded-Proto}" pattern="http" flags="NC"/>
</rewrite>
</virtual-server>
</subsystem>
也许这两条规则可以优化,但我在重定向周期出现问题,这对我有用。