簡體   English   中英

IIS集成管道模式下的ASP.NET URL重寫

[英]asp.net url rewriting with IIS integrated pipeline mode

我是ASP.NET的新手。 我創建了一個Web應用程序,並決定使用URL重寫。 我嘗試了幾種解決方案,例如http://urlrewriting.nethttp://urlrewriter.net/index.php/support/configuration

這些解決方案在我的本地主機上運行良好。 但是,當我將其上傳到共享托管服務提供商時,我所有的網頁都收到500個內部服務器錯誤。

一家網絡托管提供商告訴我HttpModules和HttpHandlers與IIS Integrated Pipeline模式不兼容。 他們說我應該將設置移到system.webServer中。我嘗試這樣做,但一定在某個地方搞砸了,因為現在我收到404錯誤。 有人可以告訴我如何使URL重寫適合我的情況嗎? 這是我原始的web.config的樣子:

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

  <system.web>
    <compilation debug="true" targetFramework="4.0"></compilation>
    <httpModules>
      <add name="UrlRewriteModule"
type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />

    </httpModules>
  </system.web>

  <urlrewritingnet
  rewriteOnlyVirtualUrls="true"
  contextItemsPrefix="QueryString"
  defaultPage = "default.aspx"
  defaultProvider="RegEx"
  xmlns="http://www.urlrewriting.net/schemas/config/2006/07" >
    <rewrites>

      <add name="Rewrite"  virtualUrl="^~/([^\/]+)/(\d+)$"
      rewriteUrlParameter="ExcludeFromClientQueryString"
      destinationUrl="~/$1.aspx?id=$2"
      ignoreCase="true" />
      <add name="Rewrite"  virtualUrl="^~/(search|administrator|Default|logout)$"
      rewriteUrlParameter="ExcludeFromClientQueryString"
      destinationUrl="~/$1.aspx"
      ignoreCase="true" />

    </rewrites>
  </urlrewritingnet>

我想他們在說的是

1)您必須在.NET中使用重寫器2)您必須對其進行設置以使用URL重寫器,該URL重寫器位於system.webServer而不是system.web下。

如果我是正確的,他們正在使用URL重寫器: http ://www.iis.net/download/urlrewrite

注意:它們可能不允許您使用自定義HTTP處理程序(是的,我知道它是已發布的第三方,但是ISP像這樣很有趣)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM