我正在从 ASP.NET 迁移到 Wordpress,我想在 IIS 7.5 中使用带有 URL 重写的重写映射来放置 301 重定向规则。我在一个名为 rewritemap.config 的文件中拥有所有重定向,并且我在 IIS 中的 URL 重写中创建了重定向规则,但我无法让重定向与 Wordpress 一起使用。我不知道这是否可能与 Wordpress 在 web.config 中拥有自己的重写规则以及将所有内容发送到 index.php 一样,它在内部处理它自己的重写,如此链接中所述:
Wordpress 如何在没有重写映射的情况下重写 URL?
web.config 的 XML 如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rewriteMaps configSource="rewritemap.config" />
<rules>
<rule name="Redirect old links from redirect map" stopProcessing="true">
<match url=".*" negate="false" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="false" />
</rule>
<rule name="wordpress" enabled="true" patternSyntax="Wildcard">
<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" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
rewritemap.config 文件的 XML 是由 IIS 管理员创建的,所以我希望它是正确的,并且它与我在其他博客文章中看到的格式相匹配,这些文章已经展示了如何执行此操作。我是否正在尝试一些不可能的事情?我有数百个旧的 aspx 页面,我需要 301 重定向到 Wordpress 站点中的特定链接,并且有许多对旧链接的外部引用,甚至考虑没有 301 重定向。