<Context path="" docBase="D:/tomcat-whirlpool/opencms" />
就行了。同时servlet.xml应该有具体某一个site的port配置:
<Connector executor="tomcatThreadPool" proxyPort="80" proxyName="maytag.whirlpool.com"
port="7080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "D:/gm/ghttp"
ServerName maytag.whirlpool.com
ErrorLog "logs/maytag-error.log"
CustomLog "logs/maytag-access.log" common
ProxyPass / http://127.0.0.1:7080/
</VirtualHost>
<sites>
<workplace-server>whirlpool.whirlpool.com</workplace-server>
<default-uri>/sites/whirlpool/</default-uri>
<site server="whirlpool.whirlpool.com" uri="/sites/whirlpool/"/>
<site server="maytag.whirlpool.com" uri="/sites/maytag/"/>
<site server="kitchenaid.whirlpool.com" uri="/sites/kitchenaid/"/>
</sites>
此时应该能成功去掉第一个/opencms
去掉${SERVLET_NAME}
urlrewrite-3.1.0.jar包放到WEB-INF/下,并且写WEB-INF/urlrewrite.xml:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
"http://tuckey.org/res/dtds/urlrewrite3.2.dtd">
<urlrewrite>
<rule>
<from>^/(.*)</from>
<to>/opencms/$1</to>
</rule>
<rule>
<from>^/opencms/resources/(.*)</from>
<to>/resources/$1</to>
</rule>
<rule>
<from>^/opencms/export/(.*)</from>
<to>/export/$1</to>
</rule>
</urlrewrite>
SetEnvIf Request_URI "//opencms//*" redirect
CustomLog logs/maytag-access.log common env=!redirect
# Multi domain configuration: All pages in "/siteB/" are to be served from domain "siteB.org"
ProxyPass /opencms/ !
RedirectPermanent /opencms/ http://maytag.whirlpool.com/
ProxyPass /resources/ !
ProxyPass /export/ !
ProxyPass / http://127.0.0.1:7080/
ProxyPassReverse / http://127.0.0.1:7080/
以上2种方式都只对online站点都有效,但是对offline站点处理有问题。