二级或二级以上域名 和 目录以及后缀同时重写.
在这里代码我就不作解释了,下载代码自己研究吧(有注释).
原代码在文章末尾提供下载.
1.域名解析问题
请确定你的域名是支持泛解析的。然后你的网站为默认网站,否则将不能实现。
图1
2.IIS配置:在IIS\你的站点\属性\主目录\配置\映谢 在通配符应用程序配置处插入一个新的映射。
把可执行文件设为和上面ASPX页面同样的配置即可(注意不要勾选 “确定文件是否存在”)。
图2
图3
3.查看你的网站主机头,里面的第一个主机头值必须为空,否则会出现错误的请求。后面随你加.
图4
4. Web.Config 配置
2 < httpModules >
3 < add type ="Qiaozw.UrlRewrite.ModuleRewriter,Qiaozw.UrlRewrite" name ="ModuleRewriter" />
4 </ httpModules >
5 </ system.web >
5.最后配置 /config/URLRewrit.config 文件。
重写配置--样例:
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() 里修改
另外在这里请教下个位谁知道这是什么原因, 有哪位高手知道?
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/
标签:二级域名 重写 URLRewrite 目录重写 .