二级或二级以上域名 和 目录以及后缀同时重写.
在这里代码我就不作解释了,下载代码自己研究吧(有注释).
原代码在文章末尾提供下载.
1.域名解析问题
请确定你的域名是支持泛解析的。然后你的网站为默认网站,否则将不能实现。
图1
2.IIS配置:在IIS\你的站点\属性\主目录\配置\映谢 在通配符应用程序配置处插入一个新的映射。
把可执行文件设为和上面ASPX页面同样的配置即可(注意不要勾选 “确定文件是否存在”)。

图2

图3
3.查看你的网站主机头,里面的第一个主机头值必须为空,否则会出现错误的请求。后面随你加.
图4
4. Web.Config 配置
1
<
system.web
>
2
<
httpModules
>
3
<
add
type
="Qiaozw.UrlRewrite.ModuleRewriter,Qiaozw.UrlRewrite"
name
="ModuleRewriter"
/>
4
</
httpModules
>
5
</
system.web
>
5.最后配置 /config/URLRewrit.config 文件。
重写配置--样例:
1
<
RewriterConfig
>
2
<
RewriterRule
>
3
<
LookFor
>
http://www.域名.com
</
LookFor
>
主域名定位
4
<
SendTo
>
/default.aspx
</
SendTo
>
5
</
RewriterRule
>
6

7
<
RewriterRule
>
8
<
LookFor
>
域名.com
</
LookFor
>
主域名定位
9
<
SendTo
>
/default.aspx
</
SendTo
>
10
</
RewriterRule
>
11

12
<
RewriterRule
>
13
<
LookFor
>
http://域名.com
</
LookFor
>
主域名定位
14
<
SendTo
>
/default.aspx
</
SendTo
>
15
</
RewriterRule
>
16

17
<
RewriterRule
>
18
<
LookFor
>
http://([\a-zA-Z0-9]{4,10}).域名.com/(\d{1,5})
</
LookFor
>
二级域名与目录同时重写. 注:多级域名重写修改正则表达式
19
<
SendTo
>
/test/test.aspx?domain=$1
&
path=$2
</
SendTo
>
20
</
RewriterRule
>
21
22
<
RewriterRule
>
23
<
LookFor
>
http://([\a-zA-Z0-9]{4,10}).域名.com/(\d{1,5})/(\d{1,5}).html
</
LookFor
>
二级域名与目录以及后缀同时重写. 注:多级域名重写修改正则表达式
24
<
SendTo
>
/test/test.aspx?domain=$1
&
path=$2
&
path1=$3
</
SendTo
>
25
</
RewriterRule
>
26

27
<
RewriterRule
>
28
<
LookFor
>
/([0-9]{1,5})
</
LookFor
>
目录重写
29
<
SendTo
>
/test/test.aspx?path=$1
</
SendTo
>
30
</
RewriterRule
>
31

32
<
RewriterRule
>
33
<
LookFor
>
/([a-z]{1,5})
</
LookFor
>
目录重写
34
<
SendTo
>
/test1/test1.aspx?path=$1
</
SendTo
>
35
</
RewriterRule
>
36
37
<
RewriterRule
>
38
<
LookFor
>
/([a-z]{1,5})/([0-9]{1,5}).html
</
LookFor
>
目录和及后缀同时重写
39
<
SendTo
>
/test1/test1.aspx?path=$1
&
path=$2
</
SendTo
>
40
</
RewriterRule
>
41
</
RewriterConfig
>
42
如要修改配置文件路径,请在 RewriterConfig.cs >>RewriterConfiguration.GetConfig() 里修改
另外在这里请教下个位谁知道这是什么原因, 有哪位高手知道?
1
try
2

{
3
//此处二级域名重写错误 出现未将对象引用设置到对象的实例的异常
4
//注:一下参数正常
5
context.RewritePath(sendToUrlLessQString, string.Empty, queryString);
6
}
7
catch
(Exception e)
8

{
9
context.RewritePath(sendToUrl); //异常后再次重写便重写成功. (原因不明)
10
}
11
代码下载: 二级重写UrlRewrite.rar
不算完全原创也算我的劳动成果吧.
转载请注明出处:http://www.cnblogs.com/cn795/archive/2009/09/03/1559902.html
作者:黑白之间
主页: http://cn795.cnblogs.com/