【转载】ASP.NET MVC重写URL制作伪静态网页,URL地址以.html结尾
在搜索引擎优化领域,静态网页对于SEO的优化有着很大的好处,因此很多人就想把自己的网站的一些网页做成伪静态。我们现在在网络上发现很多博客网站、论坛网站、CMS内容管理系统等都有使用伪静态这一种情况,伪静态在地址栏看到的URL地址是以.html结尾的,但实际上却是一个动态的网页,后台可能是Asp.net、Php或者Java动态生成的该页面。
下面简单介绍下ASP.NET MVC5模式下的伪静态的实现。
1、从URL地址来分析,伪静态的网页一般以.html结尾,那我们就需要进行URL重写,这种重写在ASP.NET WebForm模式下稍微复杂点,但在MVC模式下就变得简单,我们只需要添加一个路由规则,该规则的网址以.html界面,并且在规则中加入相应的动态参数。
我们新建个MVC5网站后,默认的路由规则可以查看RouteConfig文件,可以看到规则如下:
在搜索引擎优化领域,静态网页对于SEO的优化有着很大的好处,因此很多人就想把自己的网站的一些网页做成伪静态。我们现在在网络上发现很多博客网站、论坛网站、CMS内容管理系统等都有使用伪静态这一种情况,伪静态在地址栏看到的URL地址是以.html结尾的,但实际上却是一个动态的网页,后台可能是Asp.net、Php或者Java动态生成的该页面。
下面简单介绍下ASP.NET MVC5模式下的伪静态的实现。
1、从URL地址来分析,伪静态的网页一般以.html结尾,那我们就需要进行URL重写,这种重写在ASP.NET WebForm模式下稍微复杂点,但在MVC模式下就变得简单,我们只需要添加一个路由规则,该规则的网址以.html界面,并且在规则中加入相应的动态参数。
我们新建个MVC5网站后,默认的路由规则可以查看RouteConfig文件,可以看到规则如下:

那我们可以仿造上图中定义规则的形式,定义某个伪静态的路由,我们定义Test控制器下的Url地址为伪静态,定义后的规则如下:

2、定义完MVC的路由,重写URL地址为伪静态只算完成一半,此时IIS对伪静态.html的处理并不如你所愿。众所周知,默认情况下.html以及javascript、css文件等静态资源,请求传入后,是直接交由IIS进行处理的,不会进过你网站代码编译的dll之类处理。
为了使我们定义的伪静态网页不交由IIS直接处理,而是交由ASP.NET MVC网站来内部处理的话,我们需要在webconfig中定义一个配置项,告知IIS针对所有的以.html结尾的网页不做默认处理,而是交由ASP.NET MVC管道处理。为了达到这种效果,我们需要在<system.webServer></system.webServer>中的<handler>节点加入URL重写配置,具体的配置如下:
<handlers>
<add name="RewriteHtml64" path="*.html" verb="*" type="System.Web.Handlers.TransferRequestHandler" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="bitness64" />
<add name="RewriteHtml32" path="*.html" verb="*" type="System.Web.Handlers.TransferRequestHandler" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="bitness32" />
</handlers>
在上述的两个配置中,我是配置了32位应用程序和64位应用程序的处理方式,scriptProcessor表示具体处理.html伪静态文件的管道程序dll,从后面的aspnet_isapi.dll来看就知道.html文件在此设置项定义后将交由ASP.NET MVC内部来处理。
至此,ASP.NET MVC中伪静态的实现大致完成,相关细节点待读者自行研究。
扩展阅读:目前国内主流的云服务器厂商有哪些_IT技术小趣屋。
备注:原文转载自ASP.NET MVC重写URL制作伪静态网页_IT技术小趣屋。
【转载】ASP.NET MVC重写URL制作伪静态网页,URL地址以.html结尾的更多相关文章
- asp.net mvc 中 一种简单的 URL 重写
asp.net mvc 中 一种简单的 URL 重写 Intro 在项目中想增加一个公告的功能,但是又不想直接用默认带的那种路由,感觉好low逼,想弄成那种伪静态化的路由 (别问我为什么不直接静态化, ...
- 在ASP.NET MVC中使用IIS级别的URL Rewrite
原文 在ASP.NET MVC中使用IIS级别的URL Rewrite 大约一年半前,我在博客上写过一系列关于URL Rewrite的文章(2.3.4),把ASP.NET平台上进行URL Rewrit ...
- ASP.NET MVC中分析淘宝网页发生乱码标题搞定方法
ASP.NET MVC中分析淘宝网页发生乱码标题搞定方法 近来正在分析淘宝中商品的信息,效果发生乱码,如: 原因便是中文字符格式发生冲突,ASP.NET MVC 默认采用utf-8,可是淘宝网页采用g ...
- [转载]ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL
引言-- 在初级篇中,我们介绍了如何利用基于ASP.NET MVC的Web程序中的Global文件来简单的重写路由.也介绍了它本身的局限性-依赖于路由信息中的键值对: 如果键值对中没有的值,我们无法将 ...
- ASP.NET MVC:自定义 Route 生成小写 Url(转)
先给出本文中测试用的 controller: public class PersonsController : Controller { public ActionResult Query(strin ...
- [转载] ASP.NET MVC (一)——深入理解ASP.NET MVC
个人认为写得比较透彻得Asp.net mvc 文章,所以转载过来,原文链接在最后: ASP.NET vs MVC vs WebForms 许多ASP.NET开发人员开始接触MVC认为MVC与ASP.N ...
- 转载——Asp.Net MVC+EF+三层架构的完整搭建过程
转载http://www.cnblogs.com/zzqvq/p/5816091.html Asp.Net MVC+EF+三层架构的完整搭建过程 架构图: 使用的数据库: 一张公司的员工信息表,测试数 ...
- 转载ASP.NET MVC 和ASP.NET Web Form简单区别
转载原地址 http://www.cnblogs.com/lei2007/p/3315431.html 概论: Asp.net 微软 提供web开发框架或者技术.分Web Form和ASP.NET ...
- 转载 ASP.NET MVC中使用ASP.NET Identity
转载原地址: http://blog.jobbole.com/90695/ 在之前的文章中,我为大家介绍了OWIN和Katana,有了对它们的基本了解后,才能更好的去学习ASP.NET Identit ...
随机推荐
- css知识总结
---# 学习目标:> 1. 学会使用CSS选择器> 2. 熟记CSS样式和外观属性> 3. 熟练掌握CSS各种选择器> 4. 熟练掌握CSS各种选择器> 5. 熟练掌握 ...
- JavaScript / 本地存储
cookie 首先让我们先了解一下,什么是cookie,cookie是浏览器提供的一种机制,他将document.cookie的接口提供给JavaScript使其可以对cookie进行控制,但cook ...
- laravel 邮件配置
.env的配置 MAIL_DRIVER=smtpMAIL_HOST=smtp.163.comMAIL_PORT=465MAIL_USERNAME=你的163邮箱地址MAIL_PASSWORD=你的16 ...
- 删除API
Delete API 删除API允许根据ID从指定索引中删除一个类型化的JSON文档. DELETE /twitter/_doc/1 返回结果如下: { "_index": &qu ...
- [.net 面向对象程序设计深入](36)Redis——基础
[.net 面向对象程序设计深入](36)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...
- 数据库索引使用数据结构及算法, 及MySQL不同引擎索引实现
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...
- SQL 常用语法记录
SQL语法 注意:SQL 对大小写不敏感 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). 数据操作语言 (DML) SQL (结构化查询语言)是用于执行查询的语 ...
- Win10U盘启动盘制作及Win10系统安装
准备工具: 1:一个8GU盘 2:下载MediaCreationTool1803.exe程序 及参考文档. 启动盘制作步骤: 1:运行 2:按照截图步骤依次...... 3:制作完成后插拔一下U盘在看 ...
- laytpl模板——怎么使用ajax与数据交互
第一次在项目中用laytpl模板,下面是一些使用过程中的探索,希望对小伙伴们有所帮助. 注:第一次使用这个模板的小伙伴建议先去看看官网 laytpl <script type="tex ...
- [Swift]LeetCode944. 删除列以使之有序 | Delete Columns to Make Sorted
We are given an array A of N lowercase letter strings, all of the same length. Now, we may choose an ...