IIS php扩展URL重写规则和子目录中的wordpress冲突

时间:2017-06-13 12:13:28

标签: php wordpress iis url-rewriting

我将wordpress安装在主根文件夹中名为“blog”的子目录中,并且web.config URL在根文件夹中重写为带有.php扩展名的详细信息。我还在'blog'子目录中有标准的wordpress web.config文件。

所有工作除了某些原因之外登录页面在登录时不断刷新,这让我相信存在冲突。

会忽略root web.config帮助中的'blog'目录吗?我试过但我收到的只有500个错误。

这是root web.config ...

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect .php extension" stopProcessing="false">
  <match url="^(.*).php$" ignoreCase="true" />
<conditions logicalGrouping="MatchAny">
  <add input="{URL}" pattern="(.*).php$" ignoreCase="false" />
</conditions>
  <action type="Redirect" url="{R:1}" redirectType="Permanent" />
</rule>
<rule name="hide .php extension" stopProcessing="true">
  <match url="^(.*)$" ignoreCase="true" />
<conditions>
  <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
  <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
  <add input="{REQUEST_FILENAME}.php" matchType="IsFile" />
  </conditions>
  <action type="Rewrite" url="{R:0}.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

这是blog / web.config ...

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
  <rules>
        <rule name="wordpress" patternSyntax="Wildcard">
            <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></rules>
</rewrite>
</system.webServer>
</configuration>

任何想法都非常感激。

1 个答案:

答案 0 :(得分:0)

我终于找到了解决这个问题的方法,现在可以解决这个问题了。

我添加了一条新规则来省略博客文件夹... <rule name="block" stopProcessing="true"> <match url="^blog/wp-login.php$" /> <action type="None" /> </rule>

这克服了这个问题。这个解决方案是在...... How to exclude a directory with IIS URL rewriting