0

我遇到了 IIS 问题。我似乎无法访问 www.site.com/controller/method
在我的 Zend 项目文件夹中,我有:

-public
-application
-...
-web.config

web.config 内容(指向 public/ 文件夹):

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Imported Rule 14" stopProcessing="true">
          <match url="!\.(js|gif|jpg|png|css|txt)$" ignoreCase="false" />
          <action type="Rewrite" url="public/index.php{R:1}" />
        </rule>
        <rule name="Imported Rule 15" stopProcessing="true">
          <match url="^(.*)$" ignoreCase="false" />
          <action type="Rewrite" url="public/{R:1}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

在我的public/文件夹中,我有以下配置(在 Zend 文档中找到):

web.config 内容:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Imported Rule 1" stopProcessing="true">
          <match url="^.*$" />
          <conditions logicalGrouping="MatchAny">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" pattern="" ignoreCase="false" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" pattern="" ignoreCase="false" />
          </conditions>
          <action type="None" />
        </rule>
        <rule name="Imported Rule 2" stopProcessing="true">
          <match url="^.*$" />
          <action type="Rewrite" url="index.php" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

我认为主要问题是规则 14,但我不知道为什么它不起作用,如果我从 public 文件夹中删除配置也没有影响

有关如何解决此问题的任何建议都会非常有帮助,这是我在 Windows 服务器上的第一次部署。

4

1 回答 1

1

您需要将您的更改Imported Rule 14为如下:

<rule name="Imported Rule 14" stopProcessing="true">
  <match url="\.(js|gif|jpg|png|css|txt)$" negate="true" ignoreCase="false" />
  <action type="Rewrite" url="public/index.php{R:1}" />
</rule>

该选项!在这种情况下不起作用,因此请negate="true"改用。

于 2013-06-08T03:06:22.527 回答