黑白之间

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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

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

 
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            {
 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 目录重写 .

 

 

posted on 2009-09-03 22:29  黑白之间  阅读(4861)  评论(10编辑  收藏  举报