`
cyhcheng
  • 浏览: 60026 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

urlrewriter的使用

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

 

由于目前接了个维护的项目,客户要求增加新功能,但新的访问格式类似于:http://www.domainName.com/aritcle/123这样的格式。同时本人对.Net也不熟悉,原来的项目使用的是Web Form,请教高人说使用MVC可能有些麻烦,所以不敢直接使用MVC3或MVC4。从网上找到可以使用urlrewriter.net。决定先写个Demo看下。

  1. 下载http://urlrewriter.net/index.php/download
  2. 用Visual Studio Manager打开下载的项目,编译后,从其Bin目录下拷贝Intelligencia.UrlRewriter.dll到其它位置。
  3. 新建基于C#的ASP.NET Web Application。在项目的右键菜单中点击“Add Reference”-》Browse,找到之前拷贝的dll文件:Intelligencia.UrlRewriter.dll,点击“OK”。引入项目。
  4. 打开Web.config,编辑其内容:
  5. <?xml version="1.0"?>
    <configuration>
    	<configSections>
    		<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
    		<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    			<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    				<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    				<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    					<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
    					<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    					<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    					<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    				</sectionGroup>
    			</sectionGroup>
    		</sectionGroup>
    	</configSections>
    	<appSettings/>
    	<connectionStrings/>
    	<system.web>
    		<!-- 
                Set compilation debug="true" to insert debugging 
                symbols into the compiled page. Because this 
                affects performance, set this value to true only 
                during development.
            -->
    		<compilation debug="true">
    			<assemblies>
    				<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    				<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    				<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    				<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    			</assemblies>
    		</compilation>
    		<!--
                The <authentication> section enables configuration 
                of the security authentication mode used by 
                ASP.NET to identify an incoming user. 
            -->
    		<authentication mode="Windows"/>
    		<!--
                The <customErrors> section enables configuration 
                of what to do if/when an unhandled error occurs 
                during the execution of a request. Specifically, 
                it enables developers to configure html error pages 
                to be displayed in place of a error stack trace.
    
            <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
                <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
            </customErrors>
            -->
    		<pages>
    			<controls>
    				<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    				<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			</controls>
    		</pages>
    		<httpHandlers>
    			<remove verb="*" path="*.asmx"/>
    			<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
    		</httpHandlers>
    		<httpModules>
    			<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" name="UrlRewriter"/>
    		</httpModules>
    	</system.web>
    	<rewriter>
    		<rewrite url="/tags/(.+)/(.+)" to="/tagcloud.aspx?tag=$1&amp;date=$1"/>
    	</rewriter>
    	<system.codedom>
    		<compilers>
    			<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    				<providerOption name="CompilerVersion" value="v3.5"/>
    				<providerOption name="WarnAsError" value="false"/>
    			</compiler>
    		</compilers>
    	</system.codedom>
    	<!-- 
            The system.webServer section is required for running ASP.NET AJAX under Internet
            Information Services 7.0.  It is not necessary for previous version of IIS.
        -->
    	<system.webServer>
    		<validation validateIntegratedModeConfiguration="false"/>
    		<modules>
    			<remove name="ScriptModule"/>
    			<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    		</modules>
    		<handlers>
    			<remove name="WebServiceHandlerFactory-Integrated"/>
    			<remove name="ScriptHandlerFactory"/>
    			<remove name="ScriptHandlerFactoryAppServices"/>
    			<remove name="ScriptResource"/>
    			<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    		</handlers>
    	</system.webServer>
    	<runtime>
    		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    			<dependentAssembly>
    				<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
    				<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
    			</dependentAssembly>
    			<dependentAssembly>
    				<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
    				<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
    			</dependentAssembly>
    		</assemblyBinding>
    	</runtime>
    </configuration>
    
      注意第4,66,72行的调整。

在项目根目录下创建tagcloud.aspx,编码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="tagcloud.aspx.cs" Inherits="StudyUrlReWriter.tagcloud" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <%
     string tagName = Request.QueryString["tag"];
     string createDate = Request.QueryString["date"];
     Response.Write("读到的参数是:" + tagName + " , " + createDate);
    %>
    静态html片段
    <b>加粗了</b>
</body>
</html>

分享到:
评论

相关推荐

    Intelligencia.UrlRewriter 使用方法

    在使用Intelligencia.UrlRewriter之前,首先需要了解URL重写的原理。URL重写通过在IIS(Internet Information Services)或ASP.NET应用程序中插入一个中间层来处理HTTP请求,将原始URL转换为内部处理路径。这样,...

    Java URLRewriter使用小节

    本文将深入探讨URLRewriter的工作原理、使用方法以及相关知识点。 URLRewriter的核心概念是通过正则表达式匹配和替换规则来改变请求的URL,使得用户可以访问更友好的、更具描述性的URL,同时服务器端可以处理实际的...

    UrlRewriter Java v2.0 RC1_urlrewriter.zip

    1. **规则配置**:UrlRewriter使用XML配置文件定义重写规则,允许开发者灵活地根据需要定制URL模式。这些规则可以包括正则表达式,以匹配特定的URL模式,并指定如何转换它们。 2. **动态生成URL**:除了重写入站请求...

    UrlRewriter Java v2.0 RC1.zip

    此外,如果UrlRewriter使用了服务发现机制(如JAR服务提供者接口,SPI),那么`META-INF/services`子目录可能会包含相应的配置文件。 UrlRewriter的实现可能基于正则表达式或者自定义的规则集,允许开发者定义如何...

    其他类别UrlRewriter Java v2.0 RC1-urlrewriterjava

    3. **XML配置**: UrlRewriter 使用XML配置文件定义重写规则,开发者可以通过编写这些规则来控制URL的转换。例如,将动态URL转换为静态URL,或者添加、删除URL参数。 4. **功能**: 除了基本的URL转换外,UrlRewriter...

    UrlRewriter Java v2.0 RC1-urlrewriterjava.zip

    5. **可配置性**:UrlRewriter使用XML配置文件定义重写规则,允许开发者灵活地添加、修改或删除规则,无需修改代码。 6. **支持多种Web框架**:虽然名称中包含了"Java",但UrlRewriter通常与各种Java Web框架如...

    [其他类别]UrlRewriter Java v2.0 RC1_urlrewriterjava.zip

    8. **配置与规则**:UrlRewriter使用XML配置文件来定义URL重写和重定向规则,开发者可以根据需要自定义这些规则,实现各种复杂的需求。 9. **性能优化**:作为一个中间层工具,UrlRewriter在处理请求时需要尽可能...

    urlrewriter

    在描述中提到了一个Java项目案例,这可能是一个演示或示例项目,用于展示如何在实际应用中集成和使用`URLRewriter`。通常,这会包括以下步骤: 1. **添加依赖**:在项目的构建文件(如Maven的pom.xml或Gradle的...

    URLRewriter

    四、URLRewriter的使用 在微软环境中,引入URLRewrite库后,开发者需要在Web.config文件中配置重写规则。例如,以下规则将把所有以“/oldpage”开头的请求重定向到“/newpage”: ```xml ^oldpage/(.*)" /&gt; ...

    asp.net UrlReWriter使用经验小结

    首先,要使用UrlRewriter,你需要在你的项目中引入这个组件。可以从官方或者其他可靠的来源下载UrlRewriter的示例源码或DLL文件。将`UrlRewriter.dll`复制到你的项目`bin`目录下,这样就可以在项目中引用它。 接...

    UrlReWriter

    使用UrlReWriter,开发者需要在web.config文件中添加规则。例如,可以创建一个规则将"products.aspx?id=123"重写为"products/123"。这通常涉及到正则表达式和URL映射。 ```xml ~/products/(.*)" to="~/...

    UrlRewriter

    四、UrlRewriter的使用场景 1. SEO优化:友好的URL可以提升搜索引擎对网站的评分,从而提高搜索排名。 2. 隐藏实际路径:对于动态内容,可以隐藏实际的参数,增加安全性。 3. 旧URL迁移:在网站改版时,可以通过...

    c#UrlRewriter伪静态(UrlRewriter.dll和Intelligencia.UrlRewriter.dll)

    第一种方法需引用UrlRewriter.dll,请参考Web1.config部署 第二种方法需引用Intelligencia.UrlRewriter.dll,请参考Web.config部署 Bin文件夹里面有三个dll,需添加引用,其中特别说明的是UrlRewriter.dll,这个dll在...

    UrlRewriter 实现伪静态

    UrlRewriter 是一款广泛应用于Web开发中的开源工具,主要用于实现URL重写和转换,从而达到优化网站URL结构、实现伪...正确配置和使用UrlRewriter,可以帮助开发者创建更加优雅、可读性更强的URL,提升网站的整体质量。

    UrlRewriter .NET重写组件

    使用UrlRewriter .NET组件时,你需要了解以下几个关键知识点: 1. **配置规则**:UrlRewriter .NET的配置主要通过在Web.config文件中添加`&lt;rewrite&gt;`或`&lt;rules&gt;`元素来实现。每个规则包含一个`&lt;rule&gt;`元素,其中的`...

    UrlRewriter.dll和demo

    UrlRewriter - a rule-based URL Rewriter for .NET. 1. Open your web project, or create a new one. 2. Add a reference to the Intelligencia.UrlRewriter assembly. 3. Open the web.config file. 4. Add ...

    urlrewriter实例

    **开始使用URLRewriter** "rewrite_beginner_src.rar"可能包含入门示例,这些示例展示了如何设置基础的URL重写规则。首先,你需要引入URLRewriter库,如IISUrlRewrite或HttpModules.UrlRewriter。然后,在Web.config...

    URL重写(URLRewriter.dll)

    URL重写是Web开发中的一个重要概念,主要用于优化网站的URL结构,提高用户体验,以及更好地适应搜索引擎优化(SEO)的需求。...通过理解和掌握URLRewriter的使用,你可以更好地控制和改进你的Web应用程序的URL结构。

Global site tag (gtag.js) - Google Analytics