`
raisun_1988
  • 浏览: 117886 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

虚拟主机上用Asp.net实现Urlrewrite

    博客分类:
  • .Net
阅读更多

 

 【网上购物论坛】-IT泡吧![Www.itpob.Cn]网上购物社区! - Powered by Discuz!
http://www.itpob.cn/

 

在网上看到,很多朋友在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(\?.*)*___FCKpd___0quot;;
   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 空间测试

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

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

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

    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 支持; ...

    kangle web服务器 v3.5.7

    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. **服务器端控件的执行过程** 控件首先在服务器端执行,然后...

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

    ### 构建虚拟Web主机知识点总结 #### 一、编译安装Apache服务器 **知识点概述:** ...以上就是构建虚拟Web主机的主要知识点总结,包括了Apache服务器的安装配置以及不同类型虚拟主机的实现方式。

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

    在同一服务器上实现这三者共存,通常需要一个多平台、多语言支持的Web服务器,如Apache或Nginx。Apache可以通过mod_jk模块来支持JSP,mod_asp模块处理ASP,而PHP则可以通过mod_php或FastCGI方式运行。Nginx则通常...

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

    在提供的文件列表中,“web.config”是ASP.NET Web应用程序的核心配置文件,其中可以包含各种配置设置,包括URL重写规则。开发者需要在这个文件中引入UrlRewriter的配置节,并定义相应的重写规则。例如,可以使用XML...

    Tomcat与IIS整合笔记

    这可以通过安装ISAPI Rewrite模块或使用微软的URL Rewrite模块实现。反向代理设置允许IIS接收所有HTTP请求,然后根据规则将Java相关的请求转发到Tomcat。 3. **配置Tomcat**:修改Tomcat的`server.xml`文件,添加一...

    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服务器的...

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

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

    MVC配置说明

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

Global site tag (gtag.js) - Google Analytics