在我的root
我已部署了一个名为<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ property/happy_property_urls.php?lang=$1&city=$2&type=$3&status=$4&ref=$5 [NC,L,QSA]
</IfModule>
的{{1}}
我可以使用此网址访问我的应用 - http://mywebsite.com/myRealWebApp
我想使用多个上下文根配置我的webapp Jboss-EAP-6.1
。
我的意思是,如果我访问
.war
这3个上下文'myRealWebApp.war'
,'myRealWebApp'
,http://mywebsite.com/appA
http://mywebsite.com/appB
http://mywebsite.com/appC
指向'appA'
(部署了一个单一战争)
无论如何我可以存档吗?
感谢。
编辑:
找到解决方案:
我将此代码添加到'appB'
'appC'
关键是 flags =“L”
由于
答案 0 :(得分:1)
您可以通过在jboss(如Apache服务器)前配置http服务器并使用重定向规则将所有其他URL转换为您已配置应用程序的URL来实现此目的。 可能是jboss还有一个用于集成的apache模块,但基本原则仍然存在。 通常,建议不要直接在生产中公开jboss或其他app服务器,而是在它前面使用http服务器(你可以从http服务器提供静态内容,你可以平衡请求等)
答案 1 :(得分:0)
添加到OP共享的解决方案,这就是我为单个部署实现多个上下文所做的工作。
在 app / WEB-INF / jboss-web.xml
中配置一个上下文根<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<context-root>appA</context-root>
<session-config>
<session-timeout>10</session-timeout>
</session-config>
</jboss-web>
在 jboss-eap / standalone / configuration / standalone.xml 中添加了rewrite
规则:
<subsystem xmlns="urn:jboss:domain:web:2.2" 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 name="rule-1" pattern="^/appB(.*)$" substitution="/appA$1" flags="L"/>
<rewrite name="rule-2" pattern="^/appC(.*)$" substitution="/appA$1" flags="L"/>
</virtual-server>
</subsystem>