2012-05-18 30 views
1

我想使用UrlRewriteNet模块进行URL重写。UrlRewriting.Net即使进行了简单重写也无法正常工作

虽然我已经添加了所有必需的配置设置,但即使对于简单的重写,似乎也没有采取任何操作。

的web.config:

<configuration> 
    <configSections> 
     <!-- URL Rewriting.NET --> 
     <section name="urlrewritingnet" 
      restartOnExternalChanges="true" 
      requirePermission="false" 
      type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter" /> 
    </configSections> 
    <system.web> 
     <httpModules> 
      <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/> 
     </httpModules> 
    </system.web> 
    <system.webServer> 
     <modules runAllManagedModulesForAllRequests="true"> 
      <remove name="UrlRewriteModule"/> 
      <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" /> 
     </modules> 
    </system.webServer> 
    <urlrewritingnet 
     xmlns="http://www.urlrewriting.net/schema/config/2006/07"> 
     <rewrites> 
      <add name="GeneralRewrite" 
       virtualUrl="^~/Default.aspx" 
       rewriteUrlParameter="ExcludeFromClientQueryString" 
       destinationUrl="~/MyDefault.aspx" 
       ignoreCase="true" 
      /> 
     </rewrites> 
    </urlrewritingnet> 
</configuration> 

没有什么更多的是需要据我了解,只是重写Deafault.aspx页面MyDefault.aspx。所以我希望我的网址从https://server.address/Project.SiteName/Default.aspx简单地变成https://server.address/Project.SiteName/MyDefault.aspx

我在我的本地IIS 7 Windows 7开发电脑中使用开发,但发布生产服务器将IIS 6这就是为什么我将这两个配置都包含在web.config中。

不幸的是,在任何原因没有错误的情况下,检查了IIS并看到模块已在模块部分注册,但引擎从未运行!

有什么我想念的吗?

+0

你确实有一个名为MyDefault.aspx的页面吗?这个规则说的是,如果有人输入URL Default.aspx(假设这个页面不存在),那么它将映射到MyDefault.aspx - URL将保持不变。 –

+0

我需要做的事情凯文实际上是,当这个用户输入URL Default.aspx显示在地址栏MyDefault.aspx。似乎我错过了一些.....你能提供一个我需要的重写规则吗? –

+0

这不是URL重写的工作原理 - 关键是你可能有一个乱七八糟的URL,比如default.aspx?q1 =用户难以记住和输入的变量,相反,你可以创建一个重写规则,允许他们输入/变量/ MyFriendlyName.aspx重写规则将其映射回第一个URL,以便页面可以正确呈现,但用户看到的URL不会更改 –

回答

3

作出上述使用以下方式

<configuration> 
    <configSections> 
    <section name="urlrewritingnet" 
    restartOnExternalChanges="true" 
    requirePermission ="false" 
    type="UrlRewritingNet.Configuration.UrlRewriteSection, 
    UrlRewritingNet.UrlRewriter" /> 
    </configSections> 
</configuration> 

然后是重写部分,以重写URL

<urlrewritingnet> 
    <rewrites> 

网址来rewite将在这里映射.....

</rewrites> 
    </urlrewritingnet> 

,最后需要http模块来监听请求。

<system.web> 
    <httpModules> 
    <add name="UrlRewriteModule" 
    type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" /> 
    </httpModules> 
</system.web> 

除此之外没有配置需要在web.config中做到了基准的DLL(强制) 和.xsd文件的智能感知 http://blog.vizioz.com/2009/11/add-intellisense-when-using-url.html

+0

thx为此。帮了很多。 –

0

打开Web.config文件并添加模块

<configuration> 
<system.webserver> 

<modules> 

<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/> 
<remove name="Session"/> 
<add name="Session" type="System.Web.SessionState.SessionStateModule"/> 

</modules> 

</system.webServer> 
</configuration> 
相关问题