开发者社区> 技术小美> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

C# url重写及二级域名

简介:
+关注继续查看
< DOCTYPE html PUBLIC -WCDTD XHTML TransitionalEN httpwwwworgTRxhtmlDTDxhtml-transitionaldtd>

资料参考:http://msdn.microsoft.com/zh-cn/library/ms972974.aspx

示例:URLRewriter示例.rar

1.首先下载URLRewriter.rar,下载之后直接复制到你的网站的bin目录
2.配置你的web.config文件
在<configuration>节点下加

C url重写及二级域名 - netcorner - netcorner的博客C url重写及二级域名 - netcorner - netcorner的博客Code
  <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中把&换为&amp;否则不能执行

同时还要在<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,把不需要*.*映射的文件夹设置新站点和原来的站点分开,这样在原来的站点访问的时候用
新站点的域名即可。比如把图片设置站点http://images.abc.com/ 这样在http://abc.com/站点访问图片的时候就必须使用http://images.abc.com/图片名称.gif,这样就避免了所有问件处理。
以上两种方法即可提高不少速度,当然第一种更方便。

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

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

放在<form></form>里面

比如http://www.abc.com/photo/50/show_1.html 这个页面是经过url重写之后的,用户留言之后(提交表单)如果不做处理就变成了原始的路径了,如:http://www.abc.com/photo/Detail.aspx?ptid=50&page=1 所以我们要处理回发的情况。

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

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

如:可将 http://http://www.abc.com//1234/ 重写为 http://www.abc.com/show.aspx?id=1234

但不能将 http://1234.abc.com/ 重写为 http://www.abc.com/show.aspx?id=1234

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

1. http://www.abc.com/ 是泛解析的,将*.abc.com做为A记录绑定IP(这是域名空间管理操作)

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

3. 增加*映射(参照上面)
以上条件都满足,则在web.config中增加

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


配置转发规则
  <!--转发规则-->
  <RewriterConfig>
    <Rules>
      <RewriterRule>
        <LookFor>http://(\w+).abc.com/</LookFor>
        <SendTo>~/Url.aspx?id=$1</SendTo>
      </RewriterRule>
    </Rules>
  </RewriterConfig>

IE地址栏输入http://1234.abc.com/,则实际访问的是http://www.abc.com/URL.aspx?id=1234



本文转自 netcorner 博客园博客,原文链接: http://www.cnblogs.com/netcorner/archive/2010/03/02/2912030.html  ,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
URL
HTTP协议是一个超文本传输协议 HTTP协议是一个基于TCP传输协议传输数据的 HTTP协议规定了浏览器和 Web 服务器通信数据的格式
76 0
CSS中使用background:url(地址)显示,但是background-image:url(地址)不显示的原因
CSS中使用background:url(地址)显示,但是background-image:url(地址)不显示的原因
129 0
修改.htaccess域名www与不带www301重定向跳转重写URL
Apache下web环境,通过修改.htaccess文件即可实现重写URL,尤其是处于SEO考虑,将域名格式统一,例如将带www的域名统一301重定向到不带www的域名,或者将不带www的域名统一301重定向到带www的域名。
1009 0
修改.htaccess域名www与不带www301重定向跳转重写URL
Apache下web环境,通过修改.htaccess文件即可实现重写URL,尤其是处于SEO考虑,将域名格式统一,例如将带www的域名统一301重定向到不带www的域名,或者将不带www的域名统一301重定向到带www的域名。
3727 0
Struts2中的链接标签 <s:url>和<s:a>
2011-08-03 11:05:56|  分类:java web |  标签:|字号大中小 订阅 普通链接 Web程序中最普通的应用是链接到其他页面,下面看Welcome.jsp。 <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %&
1333 0
一起谈.NET技术,ASP.NET下用URLRewriter重写二级域名
  这里要求对域名进行重写,实现http://1234.abc.com/ 到 ~/Defa.aspx?id=1234的重写。   第一:域名   首先域名要支持泛解悉,就是域名解悉的主机名为星号*,例:*.abc.com。
995 0
+关注
6819
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载