asp.net URL重写简化版 速学URL重写

背景与介绍
在现代Web应用开发中,URL重写是一种常见的技术,用于将用户友好的URL(如http://example.com/products/123)转换为服务器端可处理的URL(如http://example.com/product.aspx?id=123),ASP.NET提供了多种实现URL重写的方法,本文将介绍一种简化版的实现方式。
实现步骤
配置IIS站点属性
首先需要确保你的IIS站点配置正确,要设置站点以支持自定义的URL格式。
修改web.config文件
在项目的web.config文件中添加以下内容:
<system.web>
<httpHandlers>
<add verb="*" path="*.zhtml" type="ZDIL.URLRewriter.RewriterFactoryHandler, ZDILURLRewriter" />
</httpHandlers>
</system.web>
这里,*.zhtml是地址栏里显示的网页扩展名,可以根据需求更改。
3. 编写RewriterFactoryHandler类

创建一个新项目,并在其中编写一个名为RewriterFactoryHandler的类,实现IHttpHandlerFactory接口,代码如下:
using System;
using System.IO;
using System.Web;
using System.Web.UI;
namespace ZDIL.URLRewriter
{
public class RewriterFactoryHandler : IHttpHandlerFactory
{
public virtual IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated)
{
string sendToUrl = url; // 地址栏里面的地址
string filePath = pathTranslated;
string sendToURLString = "/web/index.aspx"; // 真正要访问的页面
string queryString = ""; // 参数。?id=123
filePath = context.Server.MapPath(sendToURLString); // 物理地址
context.RewritePath(sendToURLString, String.Empty, queryString);
return PageParser.GetCompiledPageInstance(url, filePath, context);
}
public virtual void ReleaseHandler(IHttpHandler handler)
{
}
}
}
这个类需要编译成一个DLL文件,例如ZDILURLRewriter.dll,注意文件名不能出错,否则会影响运行。
测试URL重写功能
完成上述步骤后,打开浏览器,输入如下URL进行测试:
http://.../1.zhtml
浏览者看到是一个静态页的地址,但实际访问的是/web/index.aspx这个动态网页,这样简单的方法就实现了基本的URL重写功能。
通过以上步骤,我们实现了一个简化版的ASP.NET URL重写功能,虽然这种方法非常简单,但它能够快速地将用户友好的URL映射到实际的处理页面上,对于更复杂的需求,可以进一步使用正则表达式等技术进行匹配和重写。
常见问题解答
Q: URL重写有什么好处?

A: URL重写可以使URL更加简洁美观,同时对搜索引擎优化(SEO)也有帮助,它还可以隐藏实际的文件路径,提高网站的安全性。
Q: 如何更改重写的规则?
A: 可以通过修改RewriterFactoryHandler类中的sendToUrl变量来指定不同的重写规则,可以使用正则表达式来解析和匹配URL,然后根据匹配结果进行相应的重写操作。
以上就是关于“asp.net URL重写简化版 速学URL重写”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!