web.config - игнорировать перезапись для определенной папки - PullRequest
0 голосов
/ 06 декабря 2018

Корнем является сайт WordPress.Мне нужно игнорировать перезапись URL для папки «app», так как я размещал в этой папке виртуальный каталог .NET App.

http://www.mywebsite.com/app

Правила перезаписи URL в web.config работают частично.Если URL-адрес ссылается на статический файл или папку в приложении .NET, он работает.Если URL-ссылка на перенаправленный URL-адрес, это не удается.Как исправить?

Например, этот URL:

mywebsite.com/app/Login

должен быть перенаправлен на

mywebsite.com/app/Login.aspx

, но он перехватывается WordPress и отображает 404 не найденошибка.

если URL-адрес введен как этот, то он работает нормально:

mywebsite.com/app/Login.aspx

Вот файл web.config на корневом сайте (wordpress)

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

Это код для маршрутизации URL в .NET App

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

1 Ответ

0 голосов
/ 11 декабря 2018

Мне удалось решить эту проблему с помощью этой строки:

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

Есть замечательная ссылка от Microsoft , в которой подробно объясняется, как работают эти правила.

...