我必须将 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
当这样配置时,它应该可以工作。