PHP 网站无法在 IIS 上正常运行

PHP 网站无法在 IIS 上正常运行

我们运行一个主站点,并希望在 /tesmer 文件夹下运行第二个站点。在演示站点上,它运行完美。当我将其上传到 Windows 服务器上时,/tesmer/ 正确显示。任何子页面(如 /tesmer/smmm-sinav-islemleri)都出现 404 错误。

我们使用 Url rewrite,但似乎 IIS 下的 URL rewrite 存在缺陷。

开发站点下的工作页面: http://demo.dijitall.net/izsm/tesmer/smmm-sinav-islemleri

IIS/Windows Server 2016 上无法正常工作的页面 http://yeni.izsmmmo.org.tr/tesmer/smmm-sinav-islemleri

以下是 /tesmer 文件夹中的 web.config 文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Imported Rule 10">
                    <match url="^([0-9a-zA-Z-_/]+)$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <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?par={R:1}" appendQueryString="false" />
                </rule>
                <rule name="Imported Rule 20" stopProcessing="true">
                    <match url="^resimmap.xml$" ignoreCase="false" />
                    <action type="Rewrite" url="resimmap.php" />
                </rule>
            </rules>
        </rewrite>
        <httpErrors errorMode="Detailed" />
    </system.webServer>
</configuration>

解决方案是什么? 正确的 URL 写入规则还是其他什么?

答案1

我添加了该规则:

<rule name="tesmer22" stopProcessing="true">

  <match url="^tesmer/([0-9a-zA-Z-_/]+)$" ignoreCase="false" />
    <conditions logicalGrouping="MatchAll">
      <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="tesmer\index.php?par={R:1}" />        

</rule>   

相关内容