IIS URL Rewriting 和 ASP.NET routing(下)
在IIS URL Rewriting 和 ASP.NET routing(上)中,我们针对IIS URL Rewriting 和 ASP.NET routing的理念和功能分别进行分析并进行对比,在清楚了这些基本原理和异同之后,我们该如何在应用中挑选合适的URL优化方案呢?在本文中,我们将对此进行探讨分析,并例举几种两者协同应用的案例。
本文翻译自IIS官方网站,针对国内惯用的术语进行了部分调整。
我们该如何选择?
首先,如果我们的Web应用程序有任何除了ASP.NET之外的动态网页技术,那么选择是绝对明显的:用IIS URL重写模块(IIS URL-rewrite module)。否则的话,主要判断规则如下:
如果我们的ASP.NET Web应用程序使用了ASP.NET MVC 或者 ASP.NET Dynamic Data 技术的话,请使用ASP.NET路由。我们的应用程序URL优化过程将从原生支持中获益(ASP.NET MVC 和ASP.NET Dynamic Data直接包含ASP.NET Routing)。早期的ASP.NET 路由不支持WebForm,而目前的版本已经支持标准的Web Form应用程序了。详见此地。
如果我们是基于一个已有的ASP.NET网站,而希望尽量不去更改它的话,请使用URL重写模块。因为URL重写模块能够在不更改现有程序的基础上对网站提供“用户友好”“搜索引擎友好”的URL。同样,它也允许我们创建重定向规则,用来重定向搜素引擎的爬虫到新的URL去。
然而在实践中这两种技术并不是只能选择一个,他们往往还可以相辅相成。在接下来的章节中,我们将概述几个协同使用ASP.NET路由和URL重写模块的案例。
为网站强制实施标准的URL
举个例子,比如我们想强制使用http://www.mysite.com/home/about 来替代 http://mysite.com/Home/About。 当客户端请求一个不符合标准格式的URL时,客户端奖杯跳转到一个符合标准格式的URL。在这种情况下,我们可以使用URL重写模块来强制URL跳转,而使用ASP.NET 路由来选择一个handler来处理所请求的URL路径。
下面的代码展示了这个案例中可能用到的URL重写模块配置代码:
<rewrite>
<rules>
<rule name="Enforce canonical hostname" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" negate="true" pattern="^www\.mysite\.com$" />
</conditions>
<action type="Redirect" url="http://www.mysite.com/{R:1}" redirectType="Permanent" />
相关文档:
浅谈ASP.NET中的三种会话状态
常用的ASP.NET的会话状态中有三种.分为进程内会话状态、状态服务器会话状态、SQL Server 会话状态
先谈谈进程内会话状态(Inprocess)这是一种默认的模式,但是只要在Web.config中进行简单的配置就可进行更改,具体 ......
在Asp.net中,从A页面中弹出B页面,在B页面中选择数据后,关闭并将数据更新到A页面,是一种常用 的方式。只是我对Javascript不熟悉,所以捣鼓了一下午,终于有了一点成绩:
测试项目有两个页面:Default.aspx及Default2.aspx,在Default.aspx页面上有一个TextBox1及一个Button1,Button1用于触发Default2.aspx,TextBox1用 ......
asp.net 1.1 的应用程序,默认是不支持firefox的
iis会根据请求的user-agent 来判断浏览器类型,如果浏览器达不到要求,返回的html会渲染有问题
比方说 多行的textbox在firefox下不会渲染出width和height,是默认大小
原因是asp.net 1.1时,firefox还不强大,没有被microsoft注意到
其实可以在web.config里配置一下,让 ......
asp.net路径的基本使用
来源:http://mqingqing123.cnblogs.com/archive/2006/04/14/375338.html
URL路径其实很简单,不过在ASP.NET2.0里也设计到,所以天天在这里罗嗦一下,把路径的使用简单概括一下:
在使用CSS样式时,设计到对路径的引用,这里以<a></a>为例,说明路径的常规处理。
一般而言,链 ......
新版本URL-rewrite module for IIS 7.0的发布了,ASP.NET Routing组件随着.NET Framework 3.5 SP1的发布,并在.NET Framework 4.0 Beta中进一步成熟。作为ASP.NET 开发人员,我们不免会对这两个功能相近的组件抱有许多疑问,诸如“它们有什么异同?”“分别适用于什么环境?”等等。本文旨在描述这两者 ......