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