UrlRewriting.Net即使只进行简单的重写也无法正常工作

时间:2012-05-18 12:25:21

标签: asp.net c#-4.0 iis-7 url-rewriting iis-6

我想使用UrlRewriteNet模块进行网址重写。

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

的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开发PC中使用开发,但是发布生产服务器将是IIS 6,这就是我将这两种配置都包含在web.config中的原因。

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

我有什么想念的吗?

2 个答案:

答案 0 :(得分:3)

以下列方式制作以上内容

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

然后是重写部分重写网址

  <urlrewritingnet>
   <rewrites>

你的网址将在这里映射.....

    </rewrites>
   </urlrewritingnet>

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

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

除此之外,无需在web.config中完成配置,只需引用dll(必填) 和intellisense的.xsd文件 http://blog.vizioz.com/2009/11/add-intellisense-when-using-url.html

答案 1 :(得分: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>