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だと思いますが、なぜ機能しないのかわかりません。パブリック フォルダーから構成を削除しても影響はありません。

これを修正する方法についての提案は非常に役に立ちます。これは 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 に答える