在虚拟应用程序内的 IIS7.5 上配置 WordPress 重写规则

在虚拟应用程序内的 IIS7.5 上配置 WordPress 重写规则

我必须将 WordPress 配置为在 ASP.NET 2.0 Classic 模式下运行的主网站下的虚拟应用程序。

一切运行良好,PHP 5.3.13 / MySQL 5.1 / IIS 7.5,wordpress 网站也运行良好,除了重写方面。

该博客托管在 www.mysite.com/blog ,重写通常应将文章重写为 www.mysite.com/blog/categorie/this-is-a-pretty-article ,但它却重写为 www.mysite.com/blogcategorie/this-is-a-pretty-article,如您所见,它删除了博客和类别之间的标签,这是不合适的。

web.config 中的重写规则非常简单,取自自动生成的 Wordpress Permalink 部分:

    <rewrite>
    <rules>
            <clear />
            <rule name="wordpress" patternSyntax="Wildcard" stopProcessing="false">
                <match url="*" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="index.php" appendQueryString="true" />
            </rule>
    </rules>
</rewrite>

我几乎整天都在为此而迷失,所以我坚持要求这可能是一个好主意......

有人在 IIS 上使用 wordpress 时遇到过这样的问题吗?

提前致谢

答案1

我认为您的问题纯粹是 WordPress 设置问题。您帖子中的重写规则仅对传入请求很重要。即,它们将传入请求的 URL 重写到 index.php 页面。它们对于 WordPress 生成的任何 URL 都不重要,这显然就是您的问题所在。

我猜你没有正确配置Settings -> General -> WordPress address (URL)Settings -> General -> Site address (URL)。两者都应该设置为http://www.mysite.com/blog(不带尾部斜杠)。如果你使用自定义永久链接( ),则应该在其前面Settings -> Permalinks省略。WordPress 会自动添加它,如该页面上所示。/blog

当这样配置时,它应该可以工作。

相关内容