簡體   English   中英

web.config - 忽略特定文件夾的重寫

[英]web.config - Ignore rewrite for specific folder

根是一個 WordPress 站點。 我需要忽略文件夾“app”的 URL 重寫,因為我在該文件夾上托管了一個虛擬目錄 .NET App。

http://www.mywebsite.com/app

web.config 中的 URL 重寫規則部分起作用。 如果 URL 鏈接到 .NET 應用程序中的靜態文件或文件夾,則它有效。 如果 URL 鏈接到路由 url,則失敗。 怎么修?

例如這個網址:

mywebsite.com/app/Login

應該被路由到

mywebsite.com/app/Login.aspx

但是,它被 WordPress 捕獲並顯示 404 not found 錯誤。

如果 URL 是這樣輸入的,那么它運行正常:

mywebsite.com/app/Login.aspx

這是根站點 (wordpress) 上的 web.config

<rule name="WordPress: http://www.mywebsite.com" patternSyntax="Wildcard">
<match url="*"/>
<conditions>
<add input="{R:0}" pattern="^/app" negate="true" />
<add input="{R:0}" pattern="^/app/(.*)$" negate="true" />
<add input="{R:0}" pattern="^app/(.*)$" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="index.php"/>
</rule>

這是.NET App中URL路由的代碼

public class Global : System.Web.HttpApplication
{
    protected void Application_Start(object sender, EventArgs e)
    {
        RouteTable.Routes.MapPageRoute("login", "login", "~/login.aspx");
    }
}

我設法通過使用這一行解決了這個問題:

<add input="{HTTP_URL}" pattern="*/app" negate="true"/>

微軟有一個很好的參考,詳細解釋了這些規則是如何工作的。

暫無
暫無

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

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