IIS6.0是默认不支持url重写的,如果想实现apache中mod_rewrite的功能需要安装相应的组件。IIS6.0下安装ISAPI_Rewrite组件就可以实现url重写的功能了。下面主要讲一下如何在IIS6.0下安装ISAPI_Rewrite组件,以及安装后如何通过配置.htaccess文件实现二级域名绑定子目录。
一、IIS6.0安装ISAPI_Rewrite组件
1、下载ISAPI_Rewrite3组件破解版,下载地址:http://www.cr173.com/soft/20857.html。下载后将其解压,在解压目录中中有“绿色版\ISAPI_Rewrite3”目录,其中的文件就是我们需要的组件文件,将所有文件复制到相应的目录即可。
2、设置ISAPI_Rewrite3目录的权限,赋予其network service的读权限(或Users组读权限),否则会出现无法加载ISAPI_Rewrite的错误。
Users组权限添加是通过添点击”添加“,然后再在输入框中输入”Users“后点击”检查名称“获得的。
3、在组件目录下的httpd.conf下输入如下内容,就可以达到破解的目的:
RegistrationName= wlqcwin RegistrationCode= 2EAD-35GH-66NN-ZYBA
4、打开IIS管理器,点击需要开启url重写的的网站,右键选择属性,点击”ISAPI筛选器“。
现在”ISAPI筛选器“中没有我们需要的ISAPI_Rewrite组件,点击”添加“后输入名字然后选择ISAPI_Rewrite.dll文件所在的目录,然后”确定“。
5、添加完成后,启下IIS管理器,之后再次打开网站属性的”ISAPI 筛选器”,看下是不是刚刚添加的ISAPI_Rewrite变为绿色向上的箭头。
ps:重启之后,不会马上变为绿色,需要多等一会儿,或者多重启几次IIS。
二、测试ISAPI_Rewrite组件是否正确安装
在添加的ISAPI_Rewrite组件变为绿色后就可以尝试通过.htaccess来进行url重写等功能。为了验证一下是否已经正确安装了该组件,采用如下方式验证。
1、在网站目录下添加1.php和2.php,其中1.php的内容为:<?php phpinfo();?>,2.php的内容为<?php print 123;?>。然后在网站目录下添加.htaccess文件,.htaccess文件的内容为:
RewriteEngine on RewriteRule ^2.php$ 1.php
ps:windows下不能直接创建.htaccess文件,可以创建别的文本文件后重命名即可。
2、下载访问网站下的2.php文件,如果显示123说明组件没有装成功,如果显示的是phpinfo的内容,则说明组件安装成功了。
三、.htaccess使用(二级域名绑定子目录)
我们在买一些空间时虽然空间商可以让绑定多个域名,但是只给一个网站目录,如果想要建几个站,使不同域名或者二级域名虽然映射到同一IP地址,但可以访问不同目录,这就需要借助.htaccess来实现。
如我的网站的目录下有一个子目录wiki,我想通过wiki.jinglingshu.org来访问,而不是通过www.jinglingshu.org/wiki/来访问,那么在将wiki.jinglingshu.org的IP解析到www.jinglingshu.org的IP地址后,修改.htaccess的问价内容如下:
RewriteEngine on RewriteCond %{HTTP_HOST} ^(wiki).jinglingshu.org$ RewriteRule ^(.*)$ /%1/$1 [L, NC]
在网站的.htaccess文件中添加上述代码内容后,就可以实现通过访问wiki.jinglingshu.org来访问/wiki/目录中的内容:
如果想设置的子域名很多的话,可以有一个通用性的实现:
RewriteCond %{HTTP_HOST} ^(bbs|blog|download).jinglingshu.org$ RewriteRule ^(.*)$ /%1/$1 [L, NC]
这样设置.htaccess的内容就可以达到将二级域名绑定到相应的子目录中,如访问bbs.jinglingshu.org就访问www.jinglingshu.org/bbs/等等。
虽然IIS中.htaccess的语法与apache中可能有所不同,但大部分相同,详细.htaccess参数参考:http://www.crifan.com/figure_out_syntax_of_rewritecond_rewriterule_in_htaccess_file/。
参考资料:
1、http://www.cr173.com/html/32070_1.html
2、http://www.cr173.com/soft/20857.html
3、http://www.crifan.com/figure_out_syntax_of_rewritecond_rewriterule_in_htaccess_file/
4、http://blog.sina.com.cn/s/blog_5faaf2cb0101bq0y.html