下面是我研究了好几天和同事一起才研究出来的,原创。

1伪静态的定义:

伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息。或者还想运用动态脚本解决一些问题。不能用静态的方式来展示网站内容。但是这就损失了对搜索引擎的友好面。怎么样在两者之间找个中间方法呢,这就产生了伪静态技术。就是展示出来的是以html一类的静态页面形式,但其实是用ASP一类的动态脚本来处理的。

2伪静态的实现:

2.1创建URL重写类URLRewiter.cs 代码如下:

 1 using System;
 2 using System.Data;
 3 using System.Configuration;
 4 using System.Web;
 5 using System.Web.Security;
 6 using System.Web.UI;
 7 using System.Web.UI.WebControls;
 8 using System.Web.UI.WebControls.WebParts;
 9 using System.Web.UI.HtmlControls;
10 namespace WebApplication1
11 {
12     public class URLRewiter : IHttpHandler
13     {
14         public URLRewiter()
15         {
16         // TODO: 在此处添加构造函数逻辑
17           }
18         public void ProcessRequest(HttpContext Context)
19         {
20             try
21             {
22                 //取得原始URL屏蔽掉参数
23                 string Url = Context.Request.RawUrl;
24                 //建立正则表达式
25                 System.Text.RegularExpressions.Regex Reg = new System.Text.RegularExpressions.Regex
26                 (@"/show-(\d+)\..+", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
27                 //用正则表达式进行匹配
28                 System.Text.RegularExpressions.Match m = Reg.Match(Url, Url.LastIndexOf("/"));//从最后一个“/”开始匹配
29                 if (m.Success)//匹配成功
30                 {
31                     String RealPath = @"~/aspx/show.aspx?type=" + m.Groups[1];
32                     Context.Server.Execute(RealPath);
33                 }
34                 else
35                 {
36                     Context.Response.Redirect(Context.Request.Url.ToString());
37                 }
38             }
39             catch
40             {
41                 Context.Response.Redirect(Context.Request.Url.ToString());
42             }
43         }
44
45         /// <summary>
46         /// 实现“IHttpHandler”接口所必须的成员
47         /// </summary>
48         /// <value></value>
49         /// Author:yoyo
50         /// blog:http://yangmingsheng.cn
51         public bool IsReusable
52         {
53             get { return false; }
54         }
55     }
56 }

View Code

2.2Web.Config的修改代码如下:

1 <httpHandlers>
2         <add verb="*" path="*/show-?*.aspx" type="WebApplication1.URLRewiter" />
3         <add verb="*" path="*/show-?*.html" type="WebApplication1.URLRewiter" />
4 </httpHandlers>

目前为止在本地浏览已经没有问题:

http://localhost:56321/aspx/show.aspx----可以改为下面的地址效果一样,代表本地已经成功。

http://localhost:56321/aspx/show-9.html

3接下来是IIS的配置。(我的是win7  32位系统   IIS7)

3.1将你的程序发布到iis与平时发布一样,看看能否访问。

3.2选择你的应用程序,双击中间的【处理程序映像】,进去后点击右边【添加脚本映射】如下图:

请求路径:*.html

可执行文件:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll(注意64位系统进Framework64文件夹)

名称随意:

3.3再点击右边的【添加通配符脚本映射】

请求路径不管,可执行文件同【处理程序映像】一样,名称也随意。

4.目前为止已经配置成功,注意上面代码配置的格式是show-9.html,就是减号后面只有一个整数,这个可以修改规则。

谢谢!

转载于:https://www.cnblogs.com/Evan-Pei/p/3906659.html

Asp.net创建伪静态页面相关推荐

  1. ASP.NET生成静态页面的方法

    使用ASP.NET生成静态页面的方法有两种,第一种是使用C#在后台硬编码,第二种是读取模板文件,使用字符串替换的方法.第一种方法编码量大,而且维护比较困难.我重点讲解第二种方法.第二种方法的基本思路是 ...

  2. ASP.NET自定义错误页面(转)

    ASP.NET自定义错误页面(转) ASP.NET 提供三种用于在出现错误时捕获和响应错误的主要方法:Page_Error 事件.Application_Error 事件以及应用程序配置文件 (Web ...

  3. ASP.NET Core - Razor 页面介绍

    简介 随着ASP.NET Core 2 即将来临,最热门的新事物是Razor页面.在之前的一篇文章中,我们简要介绍了ASP.NET Core Razor 页面. Razor页面是ASP.NET Cor ...

  4. 使用EntityFramework Core和Enums作为字符串的ASP.NET Core Razor页面——第三部分

    目录 介绍 使用代码 添加项目和项目状态处理 下载源文件 - 989.1 KB 介绍 这是一篇由多部分组成的文章的第三部分,演示了通过EntityFramework Core 2.1(EF)将C#en ...

  5. 使用EntityFramework Core和Enums作为字符串的ASP.NET Core Razor页面——第一部分

    目录 介绍 背景 开发环境 使用代码 开始构建UI和数据访问 EF迁移和数据库创建 摘要 创建初始对象模型和数据库并显示第一个Razor页面 下载源码(QuantumWeb) 介绍 这是一篇由多部分组 ...

  6. ASP.NET生成静态页面的简单实现

    1.使用场景 当页面的数据不需要经常更改时可采用静态页面方式. 2.使用静态页面的好处 (1)提高网站的访问速度 (2)减轻服务器负担 (3)利于搜索引擎抓取 3.ASP.NET生成静态页面 生成静态 ...

  7. 为 ASP.NET 创建缓存配置对象[转载]

    为 ASP.NET 创建缓存配置对象 发布日期: 4/1/2004 | 更新日期: 4/1/2004 Steven A. Smith ASPAlliance.com 适用于: Microsoft AS ...

  8. asp(动态服务器页面)

    asp(动态服务器页面) ASP即Active Server Pages,是MicroSoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序. 当服务器收到对ASP文件 ...

  9. ASP.Net 实现伪静态方法及意义

    伪静态的用处: 搜索引擎会不收录带问号的网址,因为搜索引擎怕由于问号而陷入死循环,称为"搜索机器人陷阱",所以很多带问号的地址搜索引擎不会进去. 带问号的网址,搜索引擎也是会收录的 ...

最新文章

  1. 2021年春季学期-信号与系统-第十一次作业参考答案-第四小题
  2. 1.6 Dropout 正则化-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  3. 升级bios_华硕B350PLUS升级BIOS更换AMD 3900X步骤
  4. OSGI(面向Java的动态模型系统)和它的实现Equinox
  5. guid怎么做到唯一_怎么做成为一个好女人呢?
  6. CentOS 6.0正式版终于发布
  7. hive中一个好用的函数reflect
  8. 前端(jQuery)(10)-- jQuery标签切换
  9. hdu 4640 Island and study-sister(状态压缩dp)
  10. [CSharp]用VSS还是TFS呢?
  11. mysql5.7 字符集编码
  12. 基于HALCON的喷码字符自训练与识别
  13. 女孩子取什么名字好听又独特?自己家的宝宝就要个好名字
  14. 教你炒股票29:转折的力度与级别
  15. 【KALI使用】12搜索引擎Google、YANDEX、Maltego
  16. 参考基因组 坐标转换 hg38 hg19
  17. Linux服务器带宽占用高导致无法登录的处理经验分享
  18. c++的*号是否有空格的区别以及char*转std::vector<float>解析
  19. Google Earth Engine(GEE)——
  20. Linux常用文件管理命令详解

热门文章

  1. C语言高级编程:二级指针的赋值
  2. 欢迎使用CSDN-markdown编辑器test
  3. 突发!央行确认支付宝3种违法违规行为,处罚18万元!
  4. 人工智能、机器学习、深度学习和神经网络的区别
  5. 你真的会 snapshot 吗? - 每天5分钟玩转 OpenStack(163)
  6. linux禁止系统休眠,让linux系统休眠
  7. ue4 无限地图_UE4大地图(流关卡、无缝地图)
  8. python boolean_Python成为专业人士笔记-Boolean 布尔操作符研究
  9. 剪板机自动上下料_机器人联轴器,用于机器人自动化上下料
  10. python面向对象三大基本特性_python面向对象之三大特性