`
isiqi
  • 浏览: 16562873 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

在虚拟主机上用asp.net轻松实现urlrewrite

阅读更多
在网上看到,很多朋友在asp.net中做urlrewrite,用的是HttpHandle+Server.Transfer的方法。其实这种方法是错误的。第一,HttpHandle是实现不了urlrewrite的;第二Server.Transfer是标准的重定向,根本不是urlrewrite。

其实,实现urlrewrite不用自己HttpHandle,也不用自己实现HttpModule,用几行代码就可以轻松实现。

我这里介绍的是在虚拟主机上,虚拟主机不同于自己的服务器,你是没有权限去修改iis,也没有权限去安装iis rewrite之类的iis插件。但是我们仍然可以轻松完成需要的功能。

具体做法如下:打开global.asax.cs,定位到protected void Application_BeginRequest(Object sender, EventArgs e)。从方法名我想也能猜到它是做什么的。输入如下代码:

protected void Application_BeginRequest(Object sender, EventArgs e)
{
string oldUrl = HttpContext.Current.Request.RawUrl ;

string pattern = @"^(.+)default/(\d+)\.aspx(\?.*)*$";
string replace = "$1default.aspx?id=$2";

if(Regex.IsMatch(oldUrl, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled))
{
string newUrl = Regex.Replace(oldUrl, pattern, replace, RegexOptions.Compiled | RegexOptions.IgnoreCase);
this.Context.RewritePath(newUrl);
}
}
有了上边这段代码,我访问一个类似:.../default/123.aspx 的网址,当然这个网址在我的电脑上不存在,它就会被定向到:.../default.aspx?id=123。

当然,利用功能强大的正则表达式,你可以任意按照自己的需要来重写url,这一切都是在服务器端默默的进行,在客户端是不会有任何察觉的。由于是在虚拟主机上,我们只能重定向.aspx文件,如果是自己的服务器,只要把后缀名在iis中注册一下,就可以实现任意后缀名的处理。比如你可以注册一个*.myweb这样的类型,这样别人访问default/456.myweb时,你可以把它重定向到default.aspx?id=456。总之一句话,只要你能想到,.net就可以帮你实现,并且这一切不需要多少的代码。

分享到:
评论

相关推荐

    asp.net 开发二级域名源代码

    在ASP.NET开发中,创建二级域名首先需要配置IIS(Internet Information Services)或IIS Express,为每个二级域名设置虚拟主机。接着,开发者会在全球.asax文件中或者使用Web.config配置文件来引入URLRewriter规则。...

    asp.net Urlrewriter在虚拟主机上的使用方法

    我这里介绍的是在虚拟主机上,虚拟主机不同于自己的服务器,你是没有权限去修改IIS,也没有权限去安装iis rewrite之类的IIS插件。但是我们仍然可以轻松完成需要的功能。 具体做法如下:打开global.asax.cs,定位到...

    asp.net 空间测试

    UrlRewrite伪静态测试,服务器文件操作 读,写,删除,下载远程文件,是否支持WebService,是否支持在线解压缩,上传下载测试,Cookie读写测试,JMail邮件发送测试等全方位对服务器进行测试,适合个人主机,购买的...

    asp.net 空间测试源码

    UrlRewrite伪静态测试,服务器文件操作 读,写,删除,下载远程文件,是否支持WebService,是否支持在线解压缩,上传下载测试,Cookie读写测试,JMail邮件发送测试等全方位对服务器进行测试,适合个人主机,购买的...

    Asp.Net URL重写的具体实现

    在某些情况下,比如在没有权限直接配置IIS服务器或者使用虚拟主机时,这种技术就显得尤为重要。 在ASP.NET中实现URL重写,通常需要以下几个步骤: 1. **引入URLRewrite库**: 首先,需要下载并引用URLRewrite组件...

    kangle web服务器.zip

    kangle web服务器软件 是一款内置asp/asp.net支持,易操作管理的高性能web服务器和反向代理服务器。 主要特性: 为虚拟主机提供独立进程服务; 虚拟主机独立运行身份; Windows版内置Asp、Asp.net 支持; ...

    IIS5 Tomcat5.0.3整合_配置多站点虚拟主机图解手册(PDF)

    《IIS5与Tomcat5.0.3整合:配置多站点虚拟主机图解手册》是一份详尽的教程,旨在帮助用户理解如何在Windows环境中将IIS5(Internet Information Services 5)与Tomcat 5.0.3集成,以实现更高效地部署和管理多个Web...

    构建虚拟Web主机.docx

    在ASP.NET中,WebForm主要使用的对象是ServerControl(服务器端控件),这类控件是在服务器端处理的,因此在编写程序时不必担心浏览器兼容性问题。 1. **服务器端控件的执行过程** 控件首先在服务器端执行,然后...

    kangle web服务器 v3.5.7

    kangle web服务器软件 是一款内置asp/asp.net支持,易操作管理的高性能web服务器和反向代理服务器。 主要特性: 为虚拟主机提供独立进程服务; 虚拟主机独立运行身份; Windows版内置Asp、Asp.net 支持; 自动检测重...

    第四章:构建虚拟Web主机.docx

    虚拟主机是指在同一台物理服务器上运行多个独立网站的技术。这里以两个不同域名为例进行配置。 **步骤详解:** 1. **环境准备:** - IP地址:192.168.0.11/24 - 域名:`www.benet.com` 和 `www.accp.com` 2. **...

    UrlWriter不用iis里设置,只在web工程下设置

    总的来说,UrlRewriter通过在web.config中配置,可以在不依赖IIS设置的情况下实现URL重写,这对于在虚拟主机环境下的Web应用尤其有用。开发者可以利用它改进网站的用户体验和搜索引擎优化,同时无需担心服务器配置的...

    JSP、ASP、PHP共存同一服务器

    要让JSP、ASP、PHP都能通过80端口响应,需要正确配置服务器的虚拟主机或者路径映射,确保每个技术的请求能够被正确路由。 6. **IIS与Apache**: 如果服务器使用的是IIS,ASP的集成较为自然,但JSP和PHP可能需要...

    Tomcat与IIS整合笔记

    4. **创建虚拟主机**:在IIS中,为每个需要通过Tomcat处理的应用创建一个虚拟主机。设置主机头以指向Tomcat,确保请求被正确转发。 5. **测试和优化**:启动IIS和Tomcat,通过浏览器访问应用,检查整合是否成功。...

    IE6伪静态配置web.config文件

    在ASP.NET框架中,`web.config`是站点级别的配置文件,用于定义应用程序的行为,包括URL重写规则、身份验证、权限设置等。对于伪静态配置,我们需要在`web.config`中添加URL重写规则。 配置步骤如下: 1. **创建或...

    Apach_NET.rar_web服务器_服务器

    Apache与.NET的整合是通过一个名为mod_aspdotnet的模块实现的,该模块允许Apache服务器解析和执行ASP.NET应用程序。在提供的"mod_aspdotnet-2.2.0.2006-setup-r2.msi"文件中,包含了这个模块的安装程序,用户可以...

    Apche config file

    - URL重写:使用`mod_rewrite`可以实现URL美化,隐藏真实路径,提升用户体验和SEO效果。 - 安全优化:根据需求调整SSL配置,确保数据传输的安全性。 总之,理解并熟练掌握Apache配置文件是管理和优化Web服务器的...

    MVC配置说明

    例如,通过配置URL Rewrite模块,可以实现友好的URL结构;使用Application Initialization模块,可以在应用启动时预加载特定资源,提高响应速度等。 ### 结语 MVC框架的配置虽然看似简单,但其中包含了许多细节和...

    Linux与Apache(httpd.conf )配置与管理图文教程 chm

    同时,由于标签提及了asp.net,这意味着教程可能还会涵盖如何在Linux上的Apache环境中部署.NET应用程序,这通常涉及到Mono或ASP.NET Core的使用,以及可能的模块配置如mod_mono或mod_aspnet。通过这些知识点,你将...

Global site tag (gtag.js) - Google Analytics