二级或二级以上域名和目录以及后缀同时重写(已做测试)

二级或二级以上域名 和 目录以及后缀同时重写.

在这里代码我就不作解释了,下载代码自己研究吧(有注释).
原代码在文章末尾提供下载.

 
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 &amp; 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 &amp; path=$2 &amp; 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 &amp; path=$2 </ SendTo >
40    </ RewriterRule >
41 </ RewriterConfig >
42

 


如要修改配置文件路径,请在 RewriterConfig.cs >>RewriterConfiguration.GetConfig() 里修改
 

  
 
 
另外在这里请教下个位谁知道这是什么原因, 有哪位高手知道?

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

 7              catch  (Exception e)
 8 ExpandedBlockStart.gifContractedBlock.gif             {
 9                context.RewritePath(sendToUrl);  //异常后再次重写便重写成功.  (原因不明)
10            }

11             

         

代码下载: 二级重写UrlRewrite.rar

 


不算完全原创也算我的劳动成果吧.

转载请注明出处:http://www.cnblogs.com/cn795/archive/2009/09/03/1559902.html

作者:黑白之间
主页: http://cn795.cnblogs.com/

标签:二级域名 重写 URLRewrite 目录重写 .

 

 

转载于:https://www.cnblogs.com/cn795/archive/2009/09/03/1559902.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值