ErrorLog /var/log/httpd/osa/error_log.log"
AllowOverride None Order deny,allow #
AddDefaultCharset GB2312
RewriteEngine on
RewriteCond %{HTTP_HOST} ^[^.]+\.osall\.(com|net)$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+)\.osall\.(com|net)(.*)$ /home//.semcase.com/sylvan$3?un=$1&%{QUERY_STRING} [L]
在这段设定中,我把*.semcase.net和*.semcase.com 的Document Root都设定到了
/home//.semcase.com 但是,继续看下去,看到...配置了吗?在这里我就配置了URL
Rewrite规则。 RewriteEngine on #打开URL Rewrite功能 RewriteCond %{HTTP_HOST} ^[^.]
+.osall.(com|net)$ #匹配条件,如果用户输入的URL中主机名是类似 xxxx.semcase.com 或者
xxxx.semcase.cn 就执行下面一句 RewriteRule ^(.+) %{HTTP_HOST}$1 [C] #把用户输入完整
的地址(GET方式的参数除外)作为参数传给下一个规则,[C]是Chain串联下一个规则的意思
RewriteRule ^([^.]+).osall.(com|net)(.*)$ /home//dev.semcase.com/sylvan$3?
un=$1&%{QUERY_STRING} [L] # 最关键的是这一句,使用证则表达式解析用户输入的URL地址,
把主机名中的用户名信息作为名为un的参数传给/home//dev.semcase.com目录下的脚本,并
在后面跟上用户输入的GET方式的传入参数。并指明这是最后一条规则([L] 规则)。注意,在
这一句中指明的重写后的地址用的是服务器上的绝对路径,这是内部跳转。如果使用
这样的URL格式,则被称为外部跳转。使用外部跳转的话,浏览着的浏览器中的URL
地址会改变成新的地址,而使用内部跳转则浏览器中的地址不发生改变,看上去更像实际的二
级域名虚拟服务器。这样设置后,重启Apache服务器,测试一下,就大功告成了!
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-24370-4.html
Fxfighting
本来伊拉克人民还有家