你好! - 轻松快乐从此开始!

香山红叶网-计算机技术交流

当前位置: 主页 > 网站优化 >

怎样通过RewritePath方法做伪静态...

时间:2013-03-01 18:19来源: 作者: 点击:等待统计信息……
摘要:静态网站能 工具/原料 静态网站能够更好的支持搜索引擎,下面我们介绍一下如何在Asp.net中实现伪静态。 步骤/方法 首先新建一个类库项目,将自动生成的Class1文件删掉,自己创建一个HttpModule.cs类。 修改代码,使HttpModule.cs类继承自IHttpModule接口,继……

静态网站能

使用工具

  •  静态网站能够更好的支持搜索引擎,下面我们介绍一下如何在Asp.net中实现伪静态。 香山红叶网- l(WG"|*2k4}A#^h3

步骤/方法

首先新建一个类库项目,将自动生成的Class1文件删掉,自己创建一个HttpModule.cs类。 香山红叶网- $[(m&yyU802{ayMg

香山红叶网- oGUqPmSU4UL&zmXI

修改代码,使HttpModule.cs类继承自IHttpModule接口,继承该接口必须实现
void Dispose();
void Init(HttpApplication context);
两个方法,Dispose方法我们可不用管它,我们仅需要在Init方法中实现HttpApplication的BeginRequest事件即可,代码如下: 香山红叶网- Z*$~!P Cbexq#sV

public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
} 香山红叶网- )i!1xgEqVutz_lSS


context_BeginRequest事件如下: 香山红叶网- H}Vp"rhA0%0^lY3u

void context_BeginRequest(object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
HttpContext context = application.Context;
string path = context.Request.Path;
获取到该值后,就可以根据自己定义的规则来进行Url重写了。比如本站中的ab代表tec/tec_article.aspx文件,那么就可以根据path中是否包含ab来进行重写了。
如下代码:
if (path.Contains("ab"))
{
context.RewritePath("tec/tec_article.aspx")
}
}

香山红叶网- yXpEhpEFhb^w *xB

就是这样简单,第二步就算完成了。

香山红叶网- C1~M2v[~RXYk(FAp

香山红叶网- 2#V5a":yADiUUJz:

编译HttpModule.cs,将dll文件复制到网站的bin文件夹下。

配制web.config文件
在web.config文件的system.web节下配制

    <httpModules >
      <add name="UrlReWriter" type="MyHttpModule.UrlReWriter,MyHttpModule" / >
    </httpModules >

其中type中的MyHttpModule.UrlReWriter为UrlReWriter.cs的命名空间,MyHttpModule为编译后dll文件名。

注意事项

  • 我在本机调试时是用以上配制,通过OK,但上传到租用空间后报错。将配制文件改为

      <system.webServer >
        <modules  >
          <add name="UrlReWriter" type="MyHttpModule.UrlReWriter,MyHttpModule" / >
        </modules >
      </system.webServer >

(责任编辑:admin)

------分隔线----------------------------
栏目列表
推荐内容
二维码生成器
AD-code726