Apache配置假的二级域名转发(一)
Apache配置假的二级域名转发(一)
我下载的apache版本是 apache_2.0.59-win32-x86-no_ssl.msi
不是最新的,不过貌似最新的和jboss配置转发的时候,要对应一下版本,所以就随便找了个比较旧的。
jboss用的是4.2
安装好apache后,找到httpd.conf这个文件,对其中的配置做一些修改,如果没有对应的配置,那么新增httpd.conf:
LoadModule rewrite_module modules/mod_rewrite.so #打开了URL重写
ServerName sillycat.com:80
UseCanonicalName Off
DocumentRoot "E:/project/ipcamera/pages" #配置指向自己的静态页面
<Directory "E:/project/ipcamera/pages">
ProxyPass /ipcamera http://192.168.10.103:8080/ipcamera
ProxyPassReverse /ipcamera http://192.168.10.103:8080/ipcamera
RewriteEngine on #打开URL重写
RewriteCond %{HTTP_HOST} ^([a-z0-9\-]+)\.sillycat\.com$ #配置HOST里面的东东,比如www.sillycat.com
#RewriteCond %{HTTP_HOST} !^(www)\.sillycat\.com$ #配置为www打头就不去URL重写
RewriteCond %{REQUEST_URI} !^/images(.*)$ #REQUEST_PATH中/images不重写
RewriteCond %{REQUEST_URI} !^/style(.*)$
RewriteCond %{REQUEST_URI} !^/js(.*)$
RewriteCond %{REQUEST_URI} !^/script(.*)$
RewriteCond %{REQUEST_URI} !^/(.*)\.html$ #REQUEST_PATH中静态部分不用重写
RewriteRule (.*) /%{HTTP_HOST}/$1 #将匹配内容放在PATH中
#比如www.sillycat.com重写后www.sillycat.com/www.sillycat.com
# hs.silycat.com 重写后hs.sillycat.com/hs.sillycat.com
RewriteRule /([a-z0-9\-]+)\.sillycat\.com/(.*)$ /ipcamera/user.do?method=testSiteMesh&dName=$1 [L,R]
#匹配规则后,分别重写成为www.sillycat.com/ipcamera/user.do?method=testSiteMesh&dName=www
# hs.sillycat.com/ipcamera/user.do?method=testSiteMesh&dName=hs
这样的话应用就通过dName这个参数得到了你的二级域名,后面怎么处理就看你的需求和你的user.do里面怎么写咯。
另外,如果本机测试,HOSTS文件不能支持泛解析,所以只能在HOSTS文件中做如下修改:
192.168.10.103 www.sillycat.com
192.168.10.103 hs.sillycat.com
这样才能测试通过。当然发布出去了以后,发布服务器肯定是支持类似这样的配置
192.168.10.103 *.sillycat.com