天天看点

C# url重写及二级域名 (转)

< DOCTYPE html PUBLIC -WCDTD XHTML TransitionalEN httpwwwworgTRxhtmlDTDxhtml-transitionaldtd>

=======================================Url重写==========================================

2.配置你的web.config文件

在<configuration>节点下加

  <configSections>

    <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>

  </configSections>

  <!--转发规则-->

  <RewriterConfig>

    <Rules>

      <RewriterRule>

        <LookFor>~/Url.html</LookFor>

        <SendTo>~/Url.aspx?id=aa</SendTo>

      </RewriterRule>

    </Rules>

  </RewriterConfig>

注意在web.config中把&换为&否则不能执行

同时还要在<system.web>配置节下加

<httpHandlers>

      <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

      <add verb="*" path="*" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

    </httpHandlers>

最后配置IIS映射,右击站点-属性-主目录-配置-插入,把复制的文件即C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,

复制到可执行文件框内,同时去掉确认文件是否存在,确定即可

3.*映射要注意的问题

因为*映射是把所有的文件都要交给url称谢程序去处理,这样就会造成会把站点下的图片以及css或者一些下载的rar等文件都要去处理,造成性能不佳

解决办法:

方法1,把存放图片所在的文件夹转化成一个虚拟目录,在然后移处该虚拟目录*.*的映射,这样一来他的url重写程序就不会去处理图片文件,当然存放别的不需要url重写程序的文件也要象图片文件夹做类似的处理。

虚拟目录设置办法:在iis站点--右击该目录--属性--目录--创建--配置,在弹出窗口内删除:通配符应用程序映射(执行顺序)下添加的*.*的映射即可。

方法2,把不需要*.*映射的文件夹设置新站点和原来的站点分开,这样在原来的站点访问的时候用

以上两种方法即可提高不少速度,当然第一种更方便。

4.最后处理回发,即是指当我们在一个经过url重写的页面的提交返回后,一般情况下又返回了真实的路径,而不是咱们处理过的url地址,这种情况就需要咱们在需要处理回发(即提交表单的页面)的页面加上以下代码即可:

<script type="text/javascript">try{document.forms[0].action=""}catch(ex){}</script>

放在<form></form>里面

=======================================二级域名======================================

微软的URLRewrite能够对URL进行重写,但是也只能对域名之后的部分进行重写,而不能对域名进行重写,

要实现这个功能,前提条件:

2. 当前网站为默认网站(即只需要输入IP即可访问),网站的第一个主机头值必须为空,否则会出现错误的请求。

3. 增加*映射(参照上面)

以上条件都满足,则在web.config中增加

<httpModules>

<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />

</httpModules>

配置转发规则

        <LookFor>http://(\w+).abc.com/</LookFor>

        <SendTo>~/Url.aspx?id=$1</SendTo>

<a href="http://www.cnblogs.com/tag/c%23%E4%B8%93%E6%A0%8F/feeds">#c#专栏</a>

本文转自 netcorner 博客园博客,原文链接:http://www.cnblogs.com/netcorner/archive/2009/12/10/2912045.html   ,如需转载请自行联系原作者