分享
 
 
 

在IIS中用ISAPI_Rewrite Lite版配置虚拟主机支持二级域名

王朝other·作者佚名  2008-12-12
窄屏简体版  字體: |||超大  

为二级域名的问题搞了2天,狂郁闷。。。。先是用程序,感觉太累赘,简单的又不好使(用iframe嵌入,比较糟糕,不能像真正的域名一样访问),后来发觉URL Rewrite是最简单的解决办法……搜IIS用的Rewrite,下载、试用……,查资料、看说明——唉,E文不好,走了不少弯路!莫笑(地处偏僻,身边难见高人)

如果是用Apache就简单多了,默认的Rewrite模块功能强大,可以轻松提取主机头信息。

具体内容:

0、首先需要一个有效的顶级域名,并且设置该域名下二级域名的泛解析到虚拟主机所在服务器IP(即如:*.eboat.cn => 123.234.55.101)。

1、在http://www.helicontech.com/download.htm下载ISAPI_Rewrite Lite Free版本。版本不用太高,如果愿意付点$,用Full版当然也不错哦。安装,随便装在哪个位置。

注意:Lite版本不支持虚拟主机层次的配置,但仅仅是配置(就是dll只能读取自身安装目录下的全局配置httpd.ini)。如果是仅用于某虚拟主机的任意二级域名解析,可以将ISAPI_Rewrite.dll仅放置在该虚拟主机的配置中(即不在IIS的“网站>ISAPI筛选器”中插入,而是添加在虚拟主机网站的ISAPI筛选器中),这样就不会影响服务器对其它网站的处理。

2、将需要二级域名的虚拟主机的主机头置空,使得所有未在服务器上单独配置的虚拟主机域名都被定向到此处。注意!不是在服务器上单独新建一个无主机头的网站,必须在需要实现二级域名的当前网站上进行URL的Rewrite配置。这点很重要。

3、将ISAPI_Rewrite安装时自动配置在IIS中的全局设定取消(IIS>网站>ISAPI筛选器,删除ISAPI_Rewrite),在需要二级域名解析的虚拟主机(网站)中配置ISAPI_Rewrite.dll(属性>ISAPI筛选器>添加...,名称可以随便写,如Url-Rewrite)。

4、修改ISAPI_Rewrite安装目录下的配置文件httpd.ini。举例如下:

Java代码

[ISAPI_Rewrite]

RepeatLimit 1

# Defend your computer from some worm attacks

RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]

# 排除当前虚拟主机需要正常访问的域名(web.eboat.cn www.eboat.cn

# RewriteCond Host: (?:web|www)\.eboat\.cn

# 多数情况下是一个,即当前提供二级域名服务的系统(如建站系统)

RewriteCond Host: web\.eboat\.cn

RewriteRule (.*) $1 [L]

# 解决不规范目录(末尾无/)的问题

# 但前提是目录名不含‘.’而文件名必须包含,否则无法区分两者

# 如果保证URL中的目录名称规范,则无需此规则

RewriteRule ^/([^.]+[^/]$) /$1/ [L,R]

# 提取任意的二级域名名称(即第一个词汇)

# 用[a-zA-Z0-9_-]限制名称字符,重写Url到Home/子目录下

# 如 test.eboat.cn => web.eboat.cn/Home/test

RewriteCond Host: ([a-zA-Z0-9_-]+)\.eboat\.cn

RewriteRule ^/(.*) /Home/$1/$2 [I,L]

[ISAPI_Rewrite]

RepeatLimit 1

# Defend your computer from some worm attacks

RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]

# 排除当前虚拟主机需要正常访问的域名(web.eboat.cn www.eboat.cn

# RewriteCond Host: (?:web|www)\.eboat\.cn

# 多数情况下是一个,即当前提供二级域名服务的系统(如建站系统)

RewriteCond Host: web\.eboat\.cn

RewriteRule (.*) $1 [L]

# 解决不规范目录(末尾无/)的问题

# 但前提是目录名不含‘.’而文件名必须包含,否则无法区分两者

# 如果保证URL中的目录名称规范,则无需此规则

RewriteRule ^/([^.]+[^/]$) /$1/ [L,R]

# 提取任意的二级域名名称(即第一个词汇)

# 用[a-zA-Z0-9_-]限制名称字符,重写Url到Home/子目录下

# 如 test.eboat.cn => web.eboat.cn/Home/test

RewriteCond Host: ([a-zA-Z0-9_-]+)\.eboat\.cn

RewriteRule ^/(.*) /Home/$1/$2 [I,L]

注意!上面的规则不能写成

RewriteRule ^/(.*)http\://web\.eboat\.cn/Home/$1/$2[I,L]

这也是必须在系统所在网站上解析的原因。如果最后是[I,R],访问是可以的,但是浏览器的地址栏会显示实际的Url,达不到透明二级域名的效果。

总结:

之前查了Google,没找到简单实现的例子。其实这主要是规则上的问题,即使是将ISAPI_Rewrite放在IIS的“网站”全局配置中也是可以的,因为规则不会匹配其它的网站(顶级域名限制),Rewrite不会起作用。只是放在全局配置中,访问其它网站也要经过这个.dll过滤器,或多或少的有些不合理。

成功配置和运行,网上说要用Full的破解版才行(1.x的版本,试过可行)。所以这里特地将Lite免费版的用法贴出来。

(注意:最后可能需要重启IIS服务器,检查一下ISAPI过滤器中Rewrite是否已经载入——绿色的向上箭头。另外,如果是NTFS文件系统,ISAPI_Rewrite的安装目录需要添加网站用户或everyone的写权限!)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有