1

是否可以在战争文件之外使用 rewrite.properties 和 jboss-web.xml ?

目前,我将这两个文件都放入我的战争文件中的 WEB-INF 中,它按预期工作。但是集成测试(使用 Maven)会失败,因为它们被重定向到真实的网站,而不是使用测试中的版本。

如果重要的话,我的域直接指向战争文件的上下文路径。我正在使用 JBoss 7.1.1。

我试图将这两个文件放在服务器上的战争文件旁边,但这不起作用。

4

1 回答 1

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>

也许这两个规则可以优化,但我在重定向周期方面遇到了问题,这对我有用。

于 2013-10-20T23:00:22.737 回答