为什么在url根目录中安装wordPress会抬高底层的可湿性粉剂站点?

时间:2014-04-08 作者:STing

我有一个服务器(带iis7.5的w2008)和一个有许多不同WP安装的域。

以下所有内容代表WP安装。

x.com/stuff

  • x.com/programs/recent
  • x.com/programs/asia
  • x.com/sandbox/1
  • x.com/sandbox/2
  • x.com/requests
    • 我已经将x.com重定向到y.com一段时间了-只有WP子网站在使用,但希望取消重定向并开始使用根url。

      然而,当我在根目录(inetpub/wwwroot)中安装WP(fresh 3.8.1)时,它基本上破坏了我拥有的每个网站。我遇到了各种各样的问题,从网站不上线,到永久链接不工作,再到无法获取主题文件。

      我试着把网络拿出来。每次安装时都会出现配置文件和未出现的配置文件,但永久链接当然不起作用。

      我需要执行哪些步骤才能使根目录正常工作,而不会终止其余的WP安装?

      在一个只使用默认permalink的旧WP安装上,当我在WP admin中将其设置为默认时,它会更改web。配置如下:

      <?xml version="1.0" encoding="UTF-8"?>
      <configuration>
        <system.webServer>
          <rewrite>
            <rules/>
          </rewrite>
        </system.webServer>
      </configuration>
      
      当我在WP admin中将同一个站点更改为年/月/名称时,它会设置web。为此配置:

      <?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>
      
      这会把网站搞得一团糟(以前这样做是可行的)。该网站看起来没有css或正确的路径,加上任何需要重写的链接都不起作用。Also note that I do change the name of the rule so it doesn\'t conflict with other wordpress sites. So this one is wordpress_22 - I just copied what WP actually creates.

      然而,在上周安装的一个WP上,在同一台服务器上,使用年/月/postname只剩下一个目录,我就得到了一个web。配置:

      <?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 个回复
    最合适的回答,由SO网友:Otto 整理而成

    在每个web中。每个目录的配置文件如下所示:

    <rewrite>
        <rules>
            <rule name="wordpress" stopProcessing="true">
                <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>
    
    对于每个子站点,您需要更改规则名称并添加一个clear元素。示例:

    <rewrite>
        <rules>
          <clear />
            <rule name="SOME DIFFERENT NAME HERE" stopProcessing="true">
                <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>
    
    WordPress不会为您这样做,因为它不知道您系统上的任何其他站点,并且IIS配置非常复杂。正如我在评论中所解释的,WordPress目前对IIS的支持非常有限。如果您有单站点配置以外的任何类型的系统,那么您需要自己编写这些配置文件,为此,您需要找到一位了解IIS的专家,而不一定是专门了解WordPress的专家。

    结束

    相关推荐

    Custom WordPress Installation

    我想知道下面的帖子中描述的自定义WordPress安装的方法是否有更新版本。http://wpbits.wordpress.com/2007/08/10/automating-wordpress-customizations-the-installphp-way/