1.修改去掉第一个/opencms
1.1 将opencms安装成tomcat根路径,一般修改servlet.xml中加入:
<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" />
1.2 修改Apache的配置文件:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.lemon-asia.com
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>
1.3 配置文件opencms/WEB-INF/config/opencms-system.xml的内容:
<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
2.修改去掉第2个/opencms
2.1配置文件/opencms/WEB-INF/config/opencms-importexport.xml
去掉${SERVLET_NAME}
2.2 下载http://tuckey.org/urlrewrite
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>
3.或者不用urlrewrite ,直接用Apache的Rroxy来处理:
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站点处理有问题。