文档章节

url重写

短短的歼击机
 短短的歼击机
发布于 2014/08/24 19:08
字数 639
阅读 50
收藏 0

 一. 为了页面更有利于seo优化,url重写程序需要做出的不可缺少的手段之一。

二.目前url重写最常见的两种方法有:

         1.通过熟悉页面的内部执行流程,也就是asp.net请求管道中的相关知识点,进行url重写。

         2.通过使用微软提供的UrlRewriter.dll实现url重写(简单);

三、在请求管道中的第一个请求管道中拦截url并使其完成url重写功能:

         1.熟悉请求管道实现程序运行的全过程:

(1):BeginRequest: 开始处理请求
(2):AuthenticateRequest授权验证请求,获取用户授权信息
(3):PostAuthenticateRequest获取成功
(4): AunthorizeRequest 授权,一般来检查用户是否获得权限
(5):PostAuthorizeRequest:获得授权
(6):ResolveRequestCache:获取页面缓存结果
(7):PostResolveRequestCache 已获取缓存
(8):PostMapRequestHandler 创建页面对象
(9):AcquireRequestState 获取Session-----先判断当前页面对象是否实现了IRequiresSessionState接口,如果实现了,则从浏览器发来的请求报文体中获得SessionID,并到服务器的Session池中获得对应的Session对象,最后赋值给HttpContext的Session属性
(10)PostAcquireRequestState 获得Session
(11)PreRequestHandlerExecute:准备执行页面对象
执行页面对象的ProcessRequest方法
(12)PostRequestHandlerExecute 执行完页面对象了
(13)ReleaseRequestState 释放请求状态
(14)PostReleaseRequestState 已释放请求状态
(15)UpdateRequestCache 更新缓存
(16)PostUpdateRequestCache 已更新缓存
(17)LogRequest 日志记录
(18)PostLogRequest 已完成日志
(19)EndRequest 完成、

         2.直接上代码:



网站结构图:



复制代码

 IHttpModule 成员     
         += context_BeginRequest(
            HttpApplication application = sender = application.Context;
             url = context.Request.Url.LocalPath;

            Regex reg1 =  Regex();
  (reg1.IsMatch(url))  strUserName = url.Substring(url.LastIndexOf()+ + strUserName);   (url.Contains())

复制代码



复制代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="url重写.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
       <a href="WebForm2/12">重写</a>   <!--这里是有利于seo的链接-->
    </div>
    </form>
</body>
</html>

复制代码



复制代码

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace url重写
{    public partial class WebForm2 : System.Web.UI.Page
    {        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write(Request.QueryString["id"]);           //在转到的页面输出传过来的参数        }
    }
}

复制代码



  <httpModules>
      <add name="UrlReWriter" type="UrlReWriter.UrlWriter,UrlReWriter"/>
    </httpModules>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
  </system.web>


note:记得在url重写项目中引用UrlReWriter项目。否则httpModules接口没有注册,url重写泡汤是必然的。呵呵



四、第二种重写方式,是微软提供的bll,很容易实现的,大家可以在网上查一下资料,很简单的我就不写了,如果不会也可以跟我留言,咱们再一起沟通的。。呵呵,886。。。


本文转载自:http://www.cnblogs.com/knowledgesea/archive/2012/10/08/2715350.html

上一篇: asp.net缓存
下一篇: Npoi操作excel
短短的歼击机

短短的歼击机

粉丝 82
博文 268
码字总数 269797
作品 0
武汉
高级程序员
私信 提问
Nginx使用Reg-Ex和Flags Rewrite规则

简介 rewrite能够根据您的条件将传入的URL更改(重写)到不同的URL是任何Web服务器的基本功能。 Nginx重写功能非常强大且灵活。 我们将在nginx重写中解释以下示例: Nginx重写示例使用$1,$...

喵来个鱼
03/04
0
0
在 ASP.NET 中执行 URL 重写

在 ASP.NET 中执行 URL 重写 发布日期: 8/23/2004 | 更新日期: 8/23/2004 Scott Mitchell 4GuysFromRolla.com 适用范围: Microsoft® ASP.NET 摘要:介绍如何使用 Microsoft ASP.NET 执行...

晨曦之光
2012/03/09
170
0
ASP.NET Core URL Rewrite中间件

  URL重写是基于一个或多个预置规则修改请求URL的行为。URL重写在资源位置和访问地址之间创建了一种抽象,这样二者之间就减少了紧密的联系。URL重写有多种适用的场景: 临时或永久移动或替...

沃尔德
2018/07/20
0
0
nginx 常用的 URL 重写方法(转)

转自:http://www.jbxue.com/article/4727.html Nginx中一些常用的URL 重写方法介绍,有需要的朋友可以参考下。url重写应该不陌生,不管是SEO URL 伪静态的需要,还是在非常流行的wordpress...

mysoftsky
2014/03/12
75
0
URL映射和重写

经常有人请我指导应该如何动态地“重写”URL,以在他们的ASP.NETweb应用中发布比较干净的URL端点。这个博客帖子概述了几个方法,你可以用来在ASP.NET中干净地映射或重写URL,以及按照你自己的...

周睿
2010/01/19
175
0

没有更多内容

加载失败,请刷新页面

加载更多

【1015】LNMP架构二

【1015】LNMP架构二 三、PHP安装 PHP安装和LAMP安装PHP方法有差别,需要开启php-fpm服务 1、下载PHP7至/usr/local/src/ 切换目录:cd /usr/local/src 2、解压缩 tar -jxvf php-7.3.0.tar.gz...

飞翔的竹蜻蜓
29分钟前
3
0
浅谈Visitor访问者模式

一、前言 什么叫访问,如果大家学过数据结构,对于这点就很清晰了,遍历就是访问的一般形式,单独读取一个元素进行相应的处理也叫作访问,读取到想要查看的内容+对其进行处理就叫作访问,那么...

青衣霓裳
48分钟前
6
0
JS内嵌多个页面,页面之间如何更快捷的查找相关联的页面

假设parent为P页面, P页面有两个子页面,分别为B页面和C页面; B页面和C页面分别内嵌一个iframe,分别为:D页面和E页面 现在通过B页面的内嵌页面D的方法refreshEpage(eUrl)来加载内嵌页面E的内容...

文文1
49分钟前
7
0
Hibernate 5 升级后 getProperties 错误

升级到 Hibernate 5 后,提示有错误: org.hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Map; 完整的错误栈为: java.lang.NoSuchMethodError: org.hibernate......

honeymoose
50分钟前
6
0
mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
53分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部