1

我目前在我的服务器根目录中有一个有效的 wordpress 安装,但现在我正在将另一个 wordpress 站点添加到子文件夹“new-site”。

它是一个 IIS 服务器,所以 web.config 文件应该在根目录中有这个,根据 wordpress:

<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>

我现在面临的问题:如何修改根的 web.config 文件(如下),以便 /new-site 中的 WP 安装工作正常。(它在我的本地主机上运行良好,我已经更改了 wp-options 中的 URL。新站点上的主页看起来不错,但是如果您单击任何链接,它将成为根站点的错误页面。)谢谢!

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <security>
            <requestFiltering>
                <requestLimits maxAllowedContentLength="4294967295" />
            </requestFiltering>
        </security>

        <rewrite>
            <rules>
                <rule name="Main Rule" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php" />
                </rule>
                <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>

        <defaultDocument>
            <files>
                <clear />
                <add value="index.php" />
                <add value="index.html" />
                <add value="Default.htm" />
                <add value="Default.asp" />
                <add value="index.htm" />
                <add value="aboutus.html" />
            </files>
        </defaultDocument>

        <handlers>
            <remove name="PHP53_via_FastCGI" />
            <remove name="AboMapperCustom-1045478" />
            <add name="PHP53_via_FastCGI" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5.3\php-cgi.exe" resourceType="Either" requireAccess="Script" />
        </handlers>   
    </system.webServer>
</configuration>
4

1 回答 1

6

解决了。在子文件夹的 web.config 中添加<clear />,使其不受根规则的影响。

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <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>

来源:http ://forums.iis.net/post/1883731.aspx

于 2013-02-21T00:11:03.637 回答