Asp.net创建伪静态页面

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring 管理Bean(获取Bean,初始化bean事件,自动匹配ByName······等)

1.实例化spring容器 和 从容器获取Bean对象 实例化Spring容器常用的两种方式&#xff1a; 方法一: 在类路径下寻找配置文件来实例化容器 [推荐使用] ApplicationContext ctx new ClassPathXmlApplicationContext(new String[]{"beans.xml"}); 方法二: 在文件系统路径…

directoryinfo 读取 映射磁盘_LoaRunner性能测试系统学习教程:磁盘监控(5)

上期我们讲到LoaRunner性能测试内存监控&#xff0c;这期我们讲LoaRunner性能测试磁盘监控。磁盘监控在介绍磁盘监控前&#xff0c;先介绍固定磁盘存储管理的性能&#xff0c;固定磁盘存储器的结构层次如图所示。每个单独的磁盘驱动器称为一个物理卷&#xff08;PV&#xff09;…

Eclipse新建web项目正常启动tomcat不报错,但不能访问项目的解决方法

原因: 虽然我手动添加了自己下载的tomcat,但是由于在Eclipse中创建Server时&#xff0c;“Server Locations”选项采用的时默认配置&#xff0c;即"Use workspace metadata(does not modify tomcat installation ),这意味着该Server不会改变TOMCAT的安装及部署目录&#…

oracle10g执行insert,oracle 10g 增强审计。表insert 及bind values

oracle 10g之前&#xff0c;可以审计对表的操作&#xff0c;但不能记录操作时的各个列的值。在10g中&#xff0c;已经可以审核并监控到具体的sql语句及内容了。要求10g以后的版本。alter system set audit_traildb_extended scopespfile;[more]示例&#xff1b;SQL> show us…

点击按钮 变换图片

<html xmlns"http://www.w3.org/1999/xhtml"><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><title>变换图片</title><script type"text/javascript">function chan…

[邻接表] 学习邻接表的表示方法+BFS

算法导论上面的伪代码实现哦&#xff0c;没啥技术&#xff0c;不过这个邻接表表示法&#xff08;figo大神教的&#xff09;很nice。 简单说一下&#xff0c;head里面是放着自己节点后面链的最后一个元素在边池中的位置&#xff0c;边池里面成一个一个链状&#xff0c;像并查集&…

wordpress漏洞_WordPress XSS漏洞可能导致远程执行代码(RCE)

原作者&#xff1a; Ziyahan Albeniz在2019年3月13日&#xff0c;专注于静态代码分析软件的RIPS科技公司发布了他们在所有版本的WordPress 5.1.1中发现的跨站点脚本(XSS)漏洞的详细信息。该漏洞已在不同类别的各种网站上公布。有些人将其归类为跨站点请求伪造(CSRF)漏洞&#x…

centOS 6环境下安装R-3.3.2及Rstudio-server

【编译R语言】 1、下载安装R语言 # 下载R-3.3.2 $ wget https://cran.r-project.org/src/base/R-3/R-3.3.2.tar.gz# 安装R-3.3.2 $ tar -zxvf R-3.3.2.tar.gz $ cd R-3.3.2# 安装到默认目录下 --perfix/opt/R 或 /usr/local/lib64/R $ ./configure --prefix/opt/R --with-re…

DJ轮回舞曲网下载教程

该网站网址为&#xff1a;http://www.92cc.com/ 昨天有网友问我这个网站能不能下载。我告诉他&#xff0c;只要能在线试听的就能下载 于是今天出个临时教程 教大家如何获取试听的音乐URL。 第一步找到试听的网址&#xff0c;如&#xff1a; http://www.92cc.com/p97206.html 第…

【DP】【Asia - Harbin - 2010/2011】【Permutation Counting】

【题目描述】Given a permutation a1, a2,...aN of {1, 2,..., N}, we define its E-value as the amount of elements where ai > i. For example, the E-value of permutation {1, 3, 2, 4} is 1, while the E-value of {4, 3, 2, 1} is 2. You are requested to find h…

三丰三坐标编程基本步骤_三丰三坐标CRYSTA APEX S776

日本三丰MITUTOYO从1934年成立至今&#xff0c;专力致于精密测量仪器的研发和生产&#xff0c;在七十多年中&#xff0c;日本三丰量具MITUTOYO已成为世界最大综合测量仪器的制造商&#xff0c;它生产的产品包括千分尺&#xff0c;卡尺&#xff0c;千分表&#xff0c;高度尺&…

oracle的文件后缀名,转:数据文件的扩展名是ora,dbf,dat的,有什么区别?

只是通过扩展名来标识文件的类型而已&#xff0c;对于数据文件不管是ora/dat/dbf&#xff0c;都是一样的&#xff0c;没有什么区别。.dbf-数据文件&#xff0c; .tmp-临时文件&#xff0c;.log-重作日志文件(redo log file)&#xff0c; .ctl-控制文件.ora-参数文件&#xff0c…

Unity3D研究院之Android同步方法读取streamingAssets

版本Unity5.3.3 Android 小米pad1 首先非常感谢 守着阳光 同学在下面的留言。让我解决了一个大的谜团。。 开始我知道 StreamingAssets 路径是这个 path “jar:file://” Application.dataPath “!/assets/”; 文档在这里&#xff1a; http://docs.unity3d.com/Manual/Strea…

Codeforces Round 261 Div.2 D Pashmak and Parmida's problem --树状数组

题意&#xff1a;给出数组A&#xff0c;定义f(l,r,x)为A[]的下标l到r之间&#xff0c;等于x的元素数。i和j符合f(1,i,a[i])>f(j,n,a[j])&#xff0c;求有多少对这样的(i,j). 解法&#xff1a;分别从左到右&#xff0c;由右到左预处理到某个下标为止有多少个数等于该下标&…

JQuery AJAX提交中文乱码的解决方案

$.post(doSearch.action, {page : page,vip : vip,searchType : searchType,subtype : subtype,type : type,contentType: "application/x-www-form-urlencoded; charsetutf-8", keyword : keyword}, function(data) //回传函数{var val;}); 解决这个中文乱码问题&am…

列举ospf的5种报文类型_危险品货物各种包装类型以及装箱技巧

对于危险货物来说&#xff0c;其危险性的大小除与货物的本身性质有关外&#xff0c;还与货物的包装方式密切相关。因而&#xff0c;危险货物进箱条件的确定&#xff0c;也必须考虑到货物的包装方法。一、集装箱内径20GP内径&#xff1a;长5.8M*宽2.34M*高2.34M40GP内径&#xf…

linux一行多个命令行,如何在一行中运行多个Linux命令

对于每个Linux管理员来说&#xff0c;熟练使用各种命令行是他们的特性。但对于普通用户来说&#xff0c;可能还是有难度&#xff0c;您需要继续练习Linux命令&#xff0c;并找到使该任务更有效的方法。实现这个特定目标的一种方法是学习一些技巧&#xff0c;这些技巧可以提高发…

Java 数组基础

数组 数组&#xff08;Array&#xff09;&#xff1a;相同类型数据的集合。 定义数组 方式1&#xff08;推荐&#xff0c;更能表明数组类型&#xff09; type[] 变量名 new type[数组中元素的个数]; 比如&#xff1a; int[] a new int[10]; 数组名&#xff0c;也即引用a&…

车辆跟驰模型matlab代码实现_MATLAB——考虑驾驶员特性及前车速度的快速路模型...

重发一下之前误删的一篇~目前大多数元胞自动机模型并没有考虑前车速度&#xff0c;大多数同向行驶的模型中车辆都是处在一个完全跟车的状态&#xff0c;无论前车是加速还是减速&#xff0c;后车驾驶者都只是根据自己的车速判断是减速跟驰还是变换车道来寻求寻求更合理的行驶状态…

linux nc命令

参考 :http://www.linuxso.com/command/nc.html NC 全名 Netcat (网络刀)&#xff0c;作者是 Hobbit && ChrisWysopal。因其功能十分强大&#xff0c;体积小巧而出名&#xff0c;又被大家称为“瑞士军刀”。nc - TCP/IP swiss army knife nc 常用于溢出、反向链接、上传…