[IIS]配置 IIS Rewrite 模块 并修改 httpd.ini文件

配置 IIS Rewrite 模块 并修改 httpd.ini文件

下载IIS Rewrite模块:http://download.discuz.net/4.1.0/discuz_iis_rewrite.zip
2、 将压缩包解压到任意目录,(如:C:\Rewrite)。然后打开“控制面板”-“管理工具”-“IIS信息服务管理器”-“网站”-“您的站点”-“属 性”。在“ISAPI筛选器”项点击 “添加”,筛选器名称填入Rewrite,可执行文件为C:\Rewrite\Rewrite.dll ;
3、然后修改httpd.ini 文件,添加相应的过滤规则,例如:
RewriteRule ^(.*)/([a-z0-9\-\_]+)$ $1/Default\.aspx\?id=$2 [I,O]
http://localhost/Text 就会等同于 http://localhost/Default.aspx?id=Text
RewriteRule ^(.*)/id_([a-z0-9\-]+)\.html$ $1/Default\.aspx\?id=$2 [I,O]
http://localhost/id_Text.html 就会等同于 http://localhost/Default.aspx?id=Text
^(.*)/html/([0-9]+)/([0-9]+)\.html$ $1/Default\.aspx\?id=$2&name=$3
http://localhost/html/001/007.html 就等同于 http://localhost/Default.aspx?id=001&name=007
RewriteRule 语句我的理解:http://hi.baidu.com/liyuehui1987/blog/item/612fb044d1dbad83b3b7dc80.html
4、重新启动IIS就可以生效了(这一步很重要,每次修改httpd.ini后都要重启 IIS 以加载配置。)。
实际作中发现应该为:
RewriteRule ^(.*)-htm-(.*)$ $1.php\?$2

^(.*)/([a-z0-9\-\_]+)$ $1/Default\.aspx\?id=$2 [I,O]

^(.*) 这个是必须的

/ 这个应该是目录的开始

([a-z0-9\-\_]+) 这个是正则表达式,是用来匹配参数的

$ 这个是必须的就像最前面的 ^(.*)

$1 好像也是必须的

/ 也是一个目录的开始

Default 文件的真实名称(不包括扩展名)

\. 这是个转意字符 转意后面的点

Aspx 文件的扩展名

\? 又是一个转意字符 转意后面的问号

id= 参数的名称

$2 好像代表了参数的值(第一个参数的值)

[I,O] 好像是必须的

http://localhost/Text 就会等同于 http://localhost/Default.aspx?id=Text 这就成了目录式了

^(.*)/id_([a-z0-9\-]+)\.html$ $1/Default\.aspx\?id=$2 [I,O]

^(.*)这个是必须的

/ 这个应该是目录的开始

id_ 这是最终生成的文件名的一部分(最终文件名:id_ 参数值)

([a-z0-9\-\_]+) 这个是正则表达式,是用来匹配参数的

\. 这个是最终文件的名称和后缀名之间的点,\ 为转意字符

Html 为最终文件名的后缀名

$ 这个是必须的就像最前面的 ^(.*)  

$1好像也是必须的

/ 也是一个目录的开始

Default文件的真实名称(不包括扩展名)

\. 这是个转意字符 转意后面的点

Aspx 文件扩展名

\? 又是一个转意字符 转意后面的问号

id= 参数的名称

$2好像代表了参数的值(第一个参数的值)

[I,O] 也是必须的

localhost/id_Text.html 就会等同于 localhost/Default.aspx?id=Text 成静态得了

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏