Global.asax的Application_BeginRequest实现url重写无后缀的代码

本文为大家详细介绍下利用Global.asax的Application_BeginRequest 实现url重写其无后缀,具体核心代码如下,有需求的朋友可以参考下,希望对大家有所帮助

利用Global.asax的Application_BeginRequest 实现url 重写 无后缀

代码如下:

<%@ Application Language="C#" %>

<script RunAt="server">
void Application_BeginRequest(object sender, EventArgs e)
{
string oldUrl = System.Web.HttpContext.Current.Request.RawUrl; //获取初始url

//~/123.aspx → ~/Index.aspx?id=123
Regex reg = new Regex(@"^\/\d+\.html");
if (reg.IsMatch(oldUrl))
{
string id = reg.Match(oldUrl).ToString().Substring(1, reg.Match(oldUrl).ToString().LastIndexOf(".") - 1);
Context.RewritePath("~/Index.aspx?id=" + id);
}

//~/123 → ~/Index.aspx?id=123
Regex reg1 = new Regex(@"^\/\d+$");
if (reg1.IsMatch(oldUrl))
{
string id = reg1.Match(oldUrl).ToString().Substring(1);
Context.RewritePath("~/Index.aspx?id=" + id);
}

//~/index/123 → ~/Index.aspx?id=123
Regex reg3 = new Regex(@"^\/index\/\d+$");
if (reg3.IsMatch(oldUrl))
{
string id = reg3.Match(oldUrl).ToString().Substring(7);
Context.RewritePath("~/Index.aspx?id=" + id);
}
}

</script> 
时间: 2024-10-15 19:17:21

Global.asax的Application_BeginRequest实现url重写无后缀的代码的相关文章

使用Global.asax的Application_BeginRequest事件过滤客户端XSS恶意脚本提交

XSS攻击全称跨站脚本攻击(Cross Site Scripting),是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码(如HTML代码和客户端脚本)植入到提供给其它用户使用的页面中.要预防XSS攻击,就必须在处理客户端请求之前判断用户的输入是否合法,如果不合法就要拦截.在ASP.NET项目的根目录下有一个全局程序文件Global.asax文件,每次IIS请求都会按顺序执行这个文件中的不同事件.其中Application_BeginRequest事件在ASP.NET开始处理每个请

iis5.1/6.0/7.0+ 配置url重写 无扩展名伪静态

最近在搞url重写 遇到iis 无扩展名及html映射问题 供后人查看 因为考虑功能比较多(URLRewriter组件有些功能满足不了要求)所以就用了HttpModule方法重写 iis5.1中 添加应用程序映射 .* (注意 这种方法只有5.1中可以)到 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 确定文件是否存在去掉 即可 iis6.0中 搜了大量文章 都不可以 ,终于看到一篇文章 在通配符应用程序映射插入is

.NET4.0下web应用程序用UrlRewriter.dll重写无后缀路径

示例环境:VS2010 要求: 重写前:http://localhost:13275/Default.aspx?username=wilson 重写后:http://localhost:13275/wilson 第一步:下载相关DLL(ActionlessForm.dll和UrlRewriter.dll) 下载链接一: http://download.csdn.net/detail/porschev/3704868 下载链接二:   http://files.cnblogs.com/zhongw

URL重写 UrlRewrite

为什么要URL重写? 1.有利于SEO,带参数的URL权重较低:2.地址看起来更正规,推广uid 伪静态:看起来像普通页面,而非动态生成的页面. 原理:在Global.asax的Application_BeginRequest 中读取Request.Url 得到请求的URL(View-3.aspx)   然后用HttpContext.Current.RewritePath(ReWriteUrl)进行重写(也就是交由另外一个页面处理这个请求)(View.aspx?tid=3格式)http://ww

【C#】 用Route进行URL重写

在.NET Framework 4中,微软推出了Route机制.这种机制不仅在MVC中大量运用,在WebForm中也可以使用. 和Contex.RewritePath()一样,Route功能也是写在Global.asax文件中.  1.设置默认页面 具体代码如下: 如代码所示,该路由会将网站默认转向SimpleURLRewriting页面. 实际访问后,效果如下: 2.配置参数 在实际项目中,我们访问网站时经常会使用参数,像这种情况应该怎么配置呢. Global.asax: 页面后台代码: 它将

C# WebService URL重写

背景 有时候我们会有这样的需求,将 WebService URL 中的 asmx 后缀去掉:或者我们要模拟普通 Web 的 URL,接口名称直接拼接在 URL 中.这些情况我们都要用到URL重写. 关于Global 首先,在 WebService 项目中添加一个 Global.asax 类.Global.asax 是一个文本文件,它提供全局可用代码.这些代码包括应用程序的事件处理程序以及会话事件.方法和静态变量.有时该文件也被称为应用程序文件.这里的重点不是它,而是它里边的一个事件. 在 Glo

ASP.NET Global.asax详解

http://blog.csdn.net/xiarenwang/article/details/7633160 文档来源:http://club.topsage.com/thread-485397-1-1.html global.asax是一个文本文件,它提供全局可用代码.这些代码包括应用程序的事件处理程序以及会话事件.方法和静态变量.有时该文件也被称为应用程序文件. global.asax 文件中的任何代码都是它所在的应用程序的一部分.每个应用程序在其根目录下只能有一个global.asax文

ASP.NET Global.asax详解【转】

global.asax是一个文本文件,它提供全局可用代码.这些代码包括应用程序的事件处理程序以及会话事件.方法和静态变量.有时该文件也被称为应用程序文件. global.asax 文件中的任何代码都是它所在的应用程序的一部分.每个应用程序在其根目录下只能有一个global.asax文件.然而,这个文件是可选的.如果没有global.asax文件,应用程序将对所有事件应用由 HttpApplication类提供的默认行为. 提示:经典ASP有一个与global.asax类似格式和构造的,名为glo

Global.asax.cs介绍

转载  http://www.cnblogs.com/tech-bird/p/3629585.html ASP.NET的配置文件 Global.asax--全局应用程序文件 Web.config--基于XML的应用程序配置文件 global.asax是一个文本文件,它提供全局可用代码.这些代码包括应用程序的事件处理程序以及会话事件.方法和静态变量.有时该文件也被称为应用程序文件. global.asax文件中的任何代码都是它所在的应用程序的一部分.每个应用程序在其根目录下只能有一个global.