HttpContext.RewritePath

定义:使用给定路径重写 URL。就是可以跳转到指定的URL。

也可以做为伪静态的跳转。具体如下。

他的重载

①新建一个页面,放两个链接到另一个页面,注意给的链接

②在 global.asax 文件中 (需要在访问页面之前执行的事件)

 protected void Application_BeginRequest(Object sender, EventArgs e)
        {
            string originalPath = HttpContext.Current.Request.Path.ToLower();//虚拟路径
            if (originalPath.Contains("/page1"))
            {
                HttpContext.Current.RewritePath(originalPath.Replace("/page1", "/WebForm2.aspx?page=1"));
            }
            if (originalPath.Contains("/page2"))
            {
                //第二个参数为资源的附加路径信息
                HttpContext.Current.RewritePath(originalPath.Replace("/page2", "/WebForm2.aspx"), "pathinfo", "page=2");
            }
        }

③我们的WebForm2.aspx页面

显示效果如下

这也可以看做为 伪静态。 这篇文章也是打的基础。

时间: 2024-11-06 07:12:18

HttpContext.RewritePath的相关文章

NopCommerce Url分析

using System; using System.Web; using System.Web.Routing; using Nop.Core; using Nop.Core.Data; using Nop.Core.Infrastructure; using Nop.Services.Events; using Nop.Services.Seo; using Nop.Web.Framework.Localization; namespace Nop.Web.Framework.Seo { /

[转]ASP.NET MVC 3 使用 DotNetOpenAuth 实现SSO

转载[http://www.cnblogs.com/think8848/archive/2011/03/06/1972195.html] 听到DotNetOpenAuth是去年某一天的事了,当时在读<RESTful Web Service>时突然好像灵光一闪,觉得Authorization这个问题似乎应该在构建服务之前就先考虑清楚,否则服务化似乎就无从谈起了.为什么这么说呢,举例来说,Google Canlendar是一个服务,你现在使用Google Canlendar又构建了另一个服务,并幸

利用MVC的过滤器实现url的参数加密和解密

最近在与一个IOS应用做接口对接,之前一直都没有遇到什么很大的问题,但是有一天发现可以通过软件解析app的url,然后直接通过url的拼接修改接口数据,这一下使得数据的安全性和准确性都降低了,于是就想到了url加密. 然后在网上查了一下url的加密算法,使用比较普遍的还是Base64的加密,但是对于如何实现加密,网上的资料确不多,可能是我搜索的关键词不对.既然没有现成的参考文件,那么就只能靠自己了.因为所有的Controller都继承一个基Controller,所以比较自然的想到在基Contro

DTcms网站伪静态逻辑

我们之前写伪静态就是web.config里面配置好.-->配置伪静态(URL重写),DTcms网站写的伪静态跟之前的不一样,他是静态页面和代码现实了分离.http://demo.dtcms.net/ 演示网站 在看本篇文章之前,需要准备一下基本知识 ①HttpHandler(处理程序) 和 HttpModule(托管模块) ②HTML页面生成ASPX页面 ③HttpContext.RewritePath 当然,你的正则表达式也必须了解,以及如何在C#中使用正则表达式. 接下来到了我们的正文,为了

ASP.NET 整理比较全的URL重写解决方案

经常有人请我指导应该如何动态地“重写”URL,以在他们的ASP.NETweb应用中发布比较干净的URL端点.这个博客帖子概述了几个方法,你可以用来在ASP.NET中干净地映射或重写URL,以及按照你自己的需求组织你的URL的结构. 为什么URL映射和重写很重要? 下面是开发人员想要对URL有更大的灵活性的最常见的场景: 1) 处理这样的情形:你要更改你的web应用中网页的结构,但你同时也要确保在你移动网页后,那些被人收藏的老URL不会成为死链接.重写URL允许你透明地将请求转交到新的网页地址而不

[转]学习Nop中Routes的使用

本文转自:http://www.cnblogs.com/miku/archive/2012/09/27/2706276.html 1. 映射路由 大型MVC项目为了扩展性,可维护性不能像一般项目在Global中RegisterRoutes的方法里面映射路由. 这里学习一下Nop是如何做的. Global.cs  . 通过IOC容器取得IRoutePublisher实例 public static void RegisterRoutes(RouteCollection routes) { rout

在ASP.NET MVC应用程序中实现Server.Transfer()类似的功能

在ASP.NET MVC应用程序中,如果使用Server.Transfer()方法希望将请求转发到其它路径或者Http处理程序进行处理,都会引发“为xxx执行子请求时出错”的HttpException异常.而在最终实现Server.Transfer()操作的方法内部,我看到这样几行代码. else if (!(handler is Page)) { error = new HttpException(0x194, string.Empty); } 很明显,在方法内部,所有的IHttpHandle

网站超时跳转到登录界面

利用actionFilter过滤器实现,超时跳转到登录界面 /// <summary> /// 登录超时跳转至登录界面 /// </summary> public class LoginFilter : ActionFilterAttribute, IActionFilter { void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext) { if (filterContext.HttpConte

HttpContext.Current.RewritePath方法重写URL

if (!IsPostBack) { //如果请求ID为空,则重写URL为:~/index.aspx?ID=shouji.115sou.com if (Request.QueryString["ID"]==null || Request.QueryString["ID"].Trim()=="") { HttpContext.Current.RewritePath("~/index.aspx?ID=shouji.115sou.com&qu