1.伪静态:http://www.cnblogs.com/Default.html 目的就是为了赢得更多的收入,至于真否,待SEOer 解答,正如文字所说,伪静态就是假的静态。

2.准备工作:下载UrlRewrite /Files/Simcoder/URLRewriter.rar 将它放在应用程序bin目录下并引用。

3.配置 IIS 选择主目录 然后 点击配置

找到 “编辑”

找到“插入”:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 在C盘找到 aspnet_isapi.dll 文件

去掉 确认文件是否存在 下面也是找到该aspnet_isapi.dll 文件 去掉 确认文件是否存在 然后扩展名改为:.html

这些都很简单关键在配置,在网上看了一些资料,越看越迷糊,算了自己搞吧。

4.不得不承认还是得啰嗦和他们一样的: **** ****之间就是需要 复制的代码了

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>

    <!--******************************************************************************** -->
        <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
    <!--******************************************************************************** -->
    </configSections>  
    <system.web>

<httpHandlers>
        <remove verb="*" path="*.asmx"/>    

  <!--******************************************************************************** -->
          <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter"/>
          <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter"/>
    <!--******************************************************************************** -->
           </httpHandlers>
      <httpModules>
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </httpModules>
    </system.web>
    <!--******************************************************************************** -->
    <RewriterConfig>
        <Rules>
            <RewriterRule>
                <LookFor>~/index.html</LookFor>
                <SendTo>~/index.aspx</SendTo>
            </RewriterRule>
    </RewriterConfig>
    <!--******************************************************************************** -->
</configuration>

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
    <!--******************************************************************************** -->
        <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
    <!--******************************************************************************** -->
    </configSections>  
    <system.web>       <httpHandlers>
        <remove verb="*" path="*.asmx"/>    
  <!--******************************************************************************** -->
          <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter"/>
          <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter"/>
    <!--******************************************************************************** -->
           </httpHandlers>
      <httpModules>
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </httpModules>
    </system.web>
    <!--******************************************************************************** -->
    <RewriterConfig>
        <Rules>
            <RewriterRule>
                <LookFor>~/index.html</LookFor>
                <SendTo>~/index.aspx</SendTo>
            </RewriterRule>
    </RewriterConfig>
    <!--******************************************************************************** -->
</configuration>

5.事先在index.aspx页面做好标记,比如Helloworld!打开首页 http://localhost/index.html  发现实际运行的是index.aspx页面

这就是简单的伪静态了。

6.正则表达式:

 <RewriterRule>
    <LookFor>~/(.*).html</LookFor>
    <SendTo>~/$1.aspx</SendTo>
 </RewriterRule>       

(.*):应用于根目录下所有页面;

$1:与(.*)对应,也就是url显示的是什么对应的就是哪个aspx,如index.html对应index.aspx

有时候我们需要多个参数

<RewriterRule>
    <LookFor>~/ProductClassList-(.[0-9][0-9][0-9]*)-(.*).html</LookFor>
     <SendTo><![CDATA[~/productclasslist.aspx?cn=$1&c=$2]]></SendTo>
</RewriterRule>


<RewriterRule>
    <LookFor>~/ProductClassList-(.[0-9][0-9][0-9]*)-(.*).html</LookFor>
     <SendTo><![CDATA[~/productclasslist.aspx?cn=$1&c=$2]]></SendTo>
</RewriterRule>

如果你的文本含有大量的"<" 或"&"字符—就象程序码中经常的那样 — XML元素可以被定义为一个CDATA部分。

还有一个需要注意的是:

url路径匹配的时候,当找到第一个匹配的就不会再匹配第二个。

如根目录index.html 会匹配:<LookFor>~/(.*).html</LookFor>  就不在匹配其他节点。不清楚的可参考URL路由。

所以在配置的时候需要注意各个节点的优先,比如<LookFor>~/(.*).html</LookFor> 我就将它放在配置文件最后一个,

因为他匹配所有目录下的文件。全部配置如下:

<RewriterConfig>
        <Rules>
            <RewriterRule>
                <LookFor>~/productclass-(.[0-9][0-9][0-9]*).html</LookFor>
                <SendTo><![CDATA[~/productclass.aspx?cn=$1]]></SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/productclass-(.*)-(.*).html</LookFor>
                <SendTo><![CDATA[~/productclass.aspx?cn=$1&p=$2]]></SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/newsinfo-(.*).html</LookFor>
                <SendTo><![CDATA[~/newsinfo.aspx?n=$1]]></SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/newsinfo-(.*)-(.*).html</LookFor>
                <SendTo><![CDATA[~/newsinfo.aspx?cn=$1&pn=$2]]></SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/ProductClassList-(.*)-(.*)-(.*)-(.*).html</LookFor>
                <SendTo><![CDATA[~/productclasslist.aspx?cn=$1&c=$2&p=$3&s=$4]]></SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/ProductClassList-(.[0-9][0-9][0-9]*)-(.*).html</LookFor>
                <SendTo><![CDATA[~/productclasslist.aspx?cn=$1&c=$2]]></SendTo>
            </RewriterRule>
           
            <RewriterRule>
                <LookFor>~/product_detal-(.*)-(.*).html</LookFor>
                <SendTo><![CDATA[~/product_detal.aspx?cn=$1&pn=$2]]></SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/product-(.*)-(.*).html</LookFor>
                <SendTo><![CDATA[~/product.aspx?cn=$1&c=$2]]></SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/User/(.*).html</LookFor>
                <SendTo>~/User/$1.aspx</SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/about/(.*).html</LookFor>
                <SendTo>~/about/$1.aspx</SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/NewPro-(.*).html</LookFor>
                <SendTo>~/NewPro.aspx?p=$1</SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/prosearch-(.*).html</LookFor>
                <SendTo>~/prosearch.aspx?key=$1</SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/(.*).html</LookFor>
                <SendTo>~/$1.aspx</SendTo>
            </RewriterRule>           
        </Rules>
    </RewriterConfig>
</configuration>


    <RewriterConfig>
        <Rules>
            <RewriterRule>
                <LookFor>~/productclass-(.[0-9][0-9][0-9]*).html</LookFor>
                <SendTo><![CDATA[~/productclass.aspx?cn=$1]]></SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/productclass-(.*)-(.*).html</LookFor>
                <SendTo><![CDATA[~/productclass.aspx?cn=$1&p=$2]]></SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/newsinfo-(.*).html</LookFor>
                <SendTo><![CDATA[~/newsinfo.aspx?n=$1]]></SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/newsinfo-(.*)-(.*).html</LookFor>
                <SendTo><![CDATA[~/newsinfo.aspx?cn=$1&pn=$2]]></SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/ProductClassList-(.*)-(.*)-(.*)-(.*).html</LookFor>
                <SendTo><![CDATA[~/productclasslist.aspx?cn=$1&c=$2&p=$3&s=$4]]></SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/ProductClassList-(.[0-9][0-9][0-9]*)-(.*).html</LookFor>
                <SendTo><![CDATA[~/productclasslist.aspx?cn=$1&c=$2]]></SendTo>
            </RewriterRule>
           
            <RewriterRule>
                <LookFor>~/product_detal-(.*)-(.*).html</LookFor>
                <SendTo><![CDATA[~/product_detal.aspx?cn=$1&pn=$2]]></SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/product-(.*)-(.*).html</LookFor>
                <SendTo><![CDATA[~/product.aspx?cn=$1&c=$2]]></SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/User/(.*).html</LookFor>
                <SendTo>~/User/$1.aspx</SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/about/(.*).html</LookFor>
                <SendTo>~/about/$1.aspx</SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/NewPro-(.*).html</LookFor>
                <SendTo>~/NewPro.aspx?p=$1</SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/prosearch-(.*).html</LookFor>
                <SendTo>~/prosearch.aspx?key=$1</SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>~/(.*).html</LookFor>
                <SendTo>~/$1.aspx</SendTo>
            </RewriterRule>           
        </Rules>
    </RewriterConfig>
</configuration>

$1:对应第一个(.*)

$2:对应第二个(.*)

$3:对应第三个(.*)

$4:对应第四个(.*)

...依次类推

然后就是页面连接的更改,将aspx更改为html,如果有带参数的或者分页,我是直接在文件名 加"-"分隔参数;

Request.CurrentExecutionFilePath.Substring(0, Request.CurrentExecutionFilePath.LastIndexOf("aspx"))+"-参数-参数-参数...."+".html";

这种办法不适合做大型项目,不过小项目很快就能完成,尤其是已经做好的网站只需半天或一天就修改完成了。

作者:网站运营 小绿虫博客

出处:http://www.cnblogs.com/simcoder

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则小绿虫很生气后果很严重.

(转)ASP.NET 伪静态的更多相关文章

  1. ASP.NET伪静态实现

    ASP.NET伪静态实现 在asp.net下,如何自己写代码来实现伪静态呢?如何重写url地址呢? 例如:本来aspx的页面地址是:/default.aspx?id=1,我要重写成这样:/index- ...

  2. ASP.NET伪静态的方法及相关资料

    1. 添加URLRewriter.dll引用 2. 配置web.config的基本信息 <configSections> <section name="RewriterCo ...

  3. 原创:分享asp.net伪静态成目录形式iis如何设置

    服务器租用详解asp.net伪静态成目录形式iis如何设置: 一.首先介绍一下asp.net伪静态成html后缀iis如何设置的 iis6 伪静态 iis配置方法 图解 1.右键点击 要设置网站的网站 ...

  4. [转载]ASP.NET伪静态页面的实现和伪静态在IIS7.0中的配置

    ASP.NET伪静态 UrlRewrite(Url重写) 实现和配置 最近在写一个CMS的内容管理系统,需要用到一个伪静态方面的方法,在网上找了一下这方面的资料,现将这方面的资源记录一下. 本机环境: ...

  5. ASP.NET伪静态

    http://www.duote.com/tech/5/14543.html 三.伪静态的坏处 当然犹如一篇文章的作者所说的:"如果流量稍大一些使用伪静态就出现CPU使用超负荷,我的同时在线 ...

  6. ASP.NET伪静态 UrlRewrite(Url重写) 实现和配置

    核心提示:大家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一个一个的静态生成的文件么,静态文件的生成的优缺有好有 ...

  7. ASP.NET伪静态-无法读取配置文件,因为它超过了最大文件大小的解决办法

    一直都在使用微软URLRewriter,具体的使用方法我就不多说了,网上文章很多. 但最近遇到一个问题,就是当web.config文件里面设置伪静态规则过多,大于2M的时候,就报错:无法读取配置文件, ...

  8. 解决 asp.net 伪静态 IIS设置后 直正HTML无法显示的问题

    asp.net+UrlRewriter来实现网站伪静态,实现伪静态有一些好处,比如对于搜索引擎更好收录页面,还有一个好处就是隐藏了真实地址的参数,所以有独立服务器的朋友,配置IIS实现伪静态功能,挺不 ...

  9. ASP.NET伪静态配置

    一.下载URLRewriter.dll 二.在项目中添加URLRewrite的引用 三.配置webconfig 1.在<configuration>节点中添加: <configSec ...

随机推荐

  1. [转]使用wireshark分析TCP/IP协议中TCP包头的格式

    本文简单介绍了TCP面向连接理论知识,详细讲述了TCP报文各个字段含义,并从Wireshark俘获分组中选取TCP连接建立相关报文段进行分析. 一.概述 TCP是面向连接的可靠传输协议,两个进程互发数 ...

  2. 使用padding-top实现自适应背景图片

    在父级容器中设定最大的宽度,由于背景图片会出现塌陷的情况,有宽度无高度, 则,在图片容器中添加以下属性 padding-top:%(计算方式:图片的高度/图片的宽度*100%) background- ...

  3. MySQL新建用户,授权,删除用户,修改密码总结

    首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的. 注:本操作是在WIN命令提示符下,phpMyAdmin同样适用. 用户:rdingcn 用户数据库:rdi ...

  4. 利用shell脚本函数实现网络连通性的检测

    通常情况下,linux系统网络连通性的检测有两种方法: 1.通过“ping指令 + 目标IP” 或者 “ping指令 + 目标IP域名” 注意针对IPv6地址的IP网络检测需要试用ping6,同时pi ...

  5. Python自动化运维之10、模块之json、pickle、XML、PyYAML、configparser、shutil

    序列化 Python中用于序列化的两个模块 json     用于[字符串]和 [python基本数据类型] 间进行转换 pickle   用于[python特有的类型] 和 [python基本数据类 ...

  6. 如何使用sublime编辑器运行python程序

    现在越发喜欢sublime编辑器了,不仅界面友好美观.文艺,可扩展性还特别强. sublime本身是不具备运行python程序的能力的,需要做些设置才可以.以下是安装好sublime后设置的步骤: 点 ...

  7. nginx 参数记录

    log_format custom '$remote_addr - $remote_user [$time_local] ' '"$request" $status $reques ...

  8. 创建.NET应用程序所经历的步骤

    1.使用某种.NET兼容语言(如C#)编写应用程序.2.把代码编译为(CIL),存储在程序集中.3.在执行代码时(如果这是一个可执行文件,就自动运行,或者在其他代码使用它时运行),首先必须使用JIT( ...

  9. windows环境变量如何在cmd中打印

    在windows的cmd下,用"set"命令可以得到全部的环境变量,如何想得到某个环境变量,直接这样"set path"就可以了. set不仅如何,还有其他功能 ...

  10. IIS 403.14 - Forbidden错误解决方法

    HTTP 错误 403.14 - ForbiddenWeb 服务器被配置为不列出此目录的内容. 解决方法如下: 打开IIS的”处理程序映射设置“,在右边的操作栏下有 ”添加脚本映射“请求路径:*可执行 ...