分享

写回答

发帖

[经验] GD IIS7 ReWrite 规则的编写

GoDaddy GoDaddy 40051 人阅读 | 23 人回复

发表于 2010-1-27 19:03:43 | 显示全部楼层 |阅读模式

发现很多人问GD windows主机的 ReWrite 问题,在IIS6下需要安装第三方组件才能实现 Rewrite,而IIS7自带了这个组件。
rewrite规则说白了难点就是正则表达式,只要搞清楚了这个,编写就比较容易了。

看下面这个匹配字符串“^test/([0-9]+)/([_0-9a-z-]+)”,这个就是个正则表达式它的含义如下:

1、开始于“test/”字符序列。
2、在“/”后包含一个或多个数字字符。
3、在第二个“/”后包含一个或多个字母或“_”或“-”。

在IIS7中,可以通过修改web.conf文件来编写rewrite规则,特别要注意到是规则的名称应该是唯一的,下面是个例子(在GD主机上调试通过):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Rewrite to test">
                    <match url="^new.htm$" />
                    <action type="Rewrite" url="test.asp" />
                </rule>
                <rule name="Rewrite to test.asp">
                    <match url="^test/([0-9]+).html$" />
                    <action type="Rewrite" url="/rewritetest.asp\?id={R:1}" />
                </rule>
            </rules>
        </rewrite>
  <httpErrors errorMode="Detailed" />
  <asp scriptErrorSentToBrowser="true" />
  </system.webServer>
<system.web>
<customErrors mode="Off" />
<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8" />
</system.web>
</configuration>

评分

参与人数 1金币 +3 银币 +10 收起 理由
add.c + 3 + 10

查看全部评分

回答|共 23 个

okxugang

发表于 2010-1-27 20:20:34 | 显示全部楼层

不错 ,谢谢分享

呵呵笑站长

发表于 2010-1-30 10:31:49 | 显示全部楼层

留个记号

shinewater

发表于 2010-1-30 18:44:30 | 显示全部楼层

用子网站测试没有通过,显示''HTTP Error 404.0 - Not Found''
应该是路径问题
不知道绑定的域名实现Rewrite
<match url="^new.htm$" />
<action type="Rewrite" url="test.asp" />
应该怎么写?不是主域名

whys

发表于 2010-1-30 18:52:14 | 显示全部楼层

真的可以吗

hottopmobile

发表于 2010-2-18 15:38:06 | 显示全部楼层

/rewritetest.asp\?id={R:1}

要是带两个参数怎么写?怎么总是有错误

/rewritetest.asp\?id={R:1}&fenlei={R:2}

bordf

发表于 2010-5-20 11:20:12 | 显示全部楼层

中文怎么办啊?
RAKSmart

add.c

发表于 2010-5-20 11:30:53 | 显示全部楼层

回复 7# 的帖子

别用中文, 别重复发问

tianping88

发表于 2010-6-18 10:40:42 | 显示全部楼层

原帖由 hottopmobile 于 2010-2-18 03:38 PM 发表
/rewritetest.asp\?id={R:1}

要是带两个参数怎么写?怎么总是有错误

/rewritetest.asp\?id={R:1}&fenlei={R:2}

多个参数用法不是直接加&,而是加&_amp;注意把_去掉,因为不输那个_可能你看不到我发的

[ 本帖最后由 tianping88 于 2010-6-18 10:43 AM 编辑 ]

add.c

发表于 2010-6-18 10:41:42 | 显示全部楼层

回复 9# 的帖子

不是 而是?
您需要登录后才可以回帖 登录 | 注册

本版积分规则