我已经部署了一个tomcat应用程序,并进行了必要的configuration,以web服务器(消除端口等)。
我可以按照以下方式访问应用程序
http://www.domain.com/appname/
但是,即使用户进入,我也想访问应用程序
http://www.domain.com (只是url,没有应用程序名称)
http://domain.com (只是domian的名字)
我是Apacheconfiguration的新手,任何指针或示例都会大大帮助。
我认为“代理通行证”将解决…
我需要寻找重写规则还是其他?
我已经通过将index.html文件放入包含普通HTMLredirect的webapps/ROOT文件夹解决了这个问题:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>appname</title> <meta http-equiv="REFRESH" content="0;url=./appname/"></HEAD> <body> </body> </html>
您可以将您的应用程序部署为Tomcat中的ROOT Web应用程序,以消除您仍然拥有的前缀。 只需将您的应用程序解压缩到$CATALINA_HOME/webapps/ROOT文件夹,或者如果以.war压缩文件的forms进行部署,则只需将文件重命名为ROOT.war 。 它将可用,没有应用程序前缀。
关于有/无“www”部分的域名:如果您在Tomcat前面使用Apache,那么mod_rewrite参考文档有一个很好的描述规范主机名的部分 。
对于那些可能需要解决scheme的人,我只是把以下内容添加到httpd.conf中,并且对于我的问题工作正常:
RewriteEngine on RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond %{HTTP_HOST} !^$ RewriteRule ^/?(.*) http://www.%[HTTP_HOST}/$1 [L,R,NE] ProxyPass /appname http://localhost:8080/appname ProxyPassReverse /recsconnect http:... ProxyPass / http... ProxyPassReverse / http....
我之前忘了添加最后两行。
另一个值得考虑的方法是UrlRewriteFilter 。 特别有用的,如果你已经知道mod_rewrite,但不想使用Apache。