MVC C#网站+ WordPress位于同一目录

问题描述

我正在运行MVC C#App,我已经为wordpress创建了子文件夹,并且我试图在同一域中提供wordpress文章,所以可以说该文章位于

https://example.com/wordpress/article_title

我希望它成为

https://example.com/article_title

主网址中,网址中没有wordpress

我已经在WordPress网站上进行了更改,但是现在的主要问题是Web配置文件

我该如何为wordpress编写重写规则以使其在主目录中正常工作,因为当前配置文件尚不了解wordpress URL,并且返回404

谢谢

解决方法

尝试使用以下重写规则

<rules>
                <rule name="TestPattern" enabled="true" stopProcessing="true">
                    <match url="^[^/]+$" />
                    <action type="Redirect" url="wordpress/{R:0}" appendQueryString="true" />
                    <conditions logicalGrouping="MatchAny" />
                </rule>
</rules>

案例1

此规则将使所有带有斜线的模式都包含进来,假设您的asp.net mvc应用程序路由与以下网址匹配,那么此规则将允许该网址传递到您的mvc路由表,并且可以为您的MVC页面提供服务

案例2

如果您尝试按照描述的方式进行操作,则此规则会将您重定向到各自的wordpress文件夹,您将可以使用

案例3

如果您的mvc应用程序路由表包含以下结构,则仍然有一种方法会引起问题,那么您需要在mvc应用程序中更改该路由,例如 actionname / controllername 或更改您的wordpress重定向模式

,

以下方法对我有用

  1. 首先,我将index.php从WordPress文件夹移至man目录,并将所需目录更改为需要 DIR 的正确文件夹。 '/wordpress/wp-blog-header.php';
  2. 在web.config文件中添加了以下代码,以重定向所有以正斜杠结尾的URL,以用作WordPress页面
<rule name="WordPress: https://example.com/wordpress/" patternSyntax="WordPress">
            <match url="*/"/>
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                </conditions>
            <action type="Rewrite" url="index.php"/>
        </rule>

这将对某人有帮助,但最重要的是确保MVC网站不提供任何以正斜杠结尾的页面