php – IIS 8不能识别web.config

前端之家收集整理的这篇文章主要介绍了php – IIS 8不能识别web.config前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的IIS 8(Win 2012)服务器上运行了多个 PHP(Laravel)应用程序.这是我所有应用程序的web.config文件
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Imported Rule 1" stopProcessing="true">
          <match url="^(.*)/$" ignoreCase="false" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
          </conditions>
          <action type="Redirect" redirectType="Permanent" url="{R:1}" />
        </rule>
        <rule name="Imported Rule 2" stopProcessing="true">
          <match url="^" ignoreCase="false" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
          </conditions>
          <action type="Rewrite" url="index.PHP" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

但是在一个应用程序中,IIS会不时地出现一个问题:我的应用程序不起作用,因为URL错误.如果我重新启动Web服务器或更改web.config文件(添加一个空的空间或东西…),它再次工作.

我不知道…我的其他应用程序没有问题,它是相同的web.config代码.

所有用户(IIS_IUSR,Admins等)都具有完整的写入和读取权限.

我的应用程序在文件夹中组织,请参阅:


我用10.0.0.7/doku或10.0.0.7/lagerverwaltung命名.

当使用IIS时,我会考虑将每个特定的站点文件夹(doku,lagerverwaltung等)转换为自己的应用程序.这样就不会混淆在加载时使用哪个web.config文件,然后应用程序可以在自己的应用程序池和线程中运行.

为此,IIS内部右键单击要转换的特定文件夹,然后单击打开的上下文菜单中的“转换为应用程序”.在随后的屏幕中,您可以选择现有的或新的应用程序池,还可以设置您可能需要的任何所需的直通身份验证.

强制子站点运行在他们自己的应用程序池中,并使用自己的web.config文件专门应该消除您的问题,潜在的后备到基础web.config.

猜你在找的PHP相关文章