1

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

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

网络配置:

<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,就不需要更多了。所以我希望我的 URL 从https://server.address/Project.SiteName/Default.aspx简单地变成https://server.address/Project.SiteName/MyDefault.aspx

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

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

有什么我想念的吗?

4

2 回答 2

3

按照以下方式进行上述操作

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

然后是重写部分来重写 url

  <urlrewritingnet>
   <rewrites>

您要重写的网址将映射到此处.....

    </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

于 2012-08-22T07:13:39.120 回答
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>
于 2017-08-18T08:25:19.487 回答