You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IIS 10部署Symfony 5出现ERR_TOO_MANY_REDIRECTS重定向错误

问题原因及解决方案

1. 最初ERR_TOO_MANY_REDIRECTS报错原因

你提供的web.config存在XML结构错误:<rewrite>节点错误放在了<system.webServer>节点外部,导致IIS无法正确识别重写规则的排除条件(即忽略真实存在的文件),所有请求包括index.php自身都会被重复重定向到index.php,形成死循环。

2. 删除重写规则后404报错原因

说明IIS无法正常处理PHP文件请求,通常是未配置PHP处理映射,或是index.php的访问权限不足。

具体修复步骤

  • 第一步:使用修正后的web.config配置,替换你当前的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <defaultDocument>
      <files>
          <add value="index.php" />
      </files>
    </defaultDocument>
    <rewrite>
        <rules>
            <rule name="Rewriter" stopProcessing="true">
               <match url="^(.*)$" ignoreCase="false" />
               <conditions logicalGrouping="MatchAll">
                  <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
               </conditions>
               <action type="Rewrite" url="./index.php" appendQueryString="true" />
            </rule>
        </rules>
    </rewrite>
   </system.webServer>
</configuration>
  • 第二步:检查IIS的PHP运行配置
    1. 确认IIS已安装CGI功能(服务器管理器>添加角色和功能>服务器角色>Web服务器>应用程序开发>勾选CGI)
    2. 在站点的「处理程序映射」中添加PHP处理程序:请求路径为*.php,模块选择FastCgiModule,可执行文件选择你本地的php-cgi.exe路径
  • 第三步:配置目录权限
    给Symfony项目根目录,以及public、var子目录,授予IIS_IUSRS用户的读取、执行、写入权限。
  • 第四步:验证访问
    先直接访问http://192.168.1.87:89/index.php确认PHP能正常解析,再访问不带index.php的路径验证重写规则生效。

内容的提问来源于stack exchange,提问作者Swen De Bentzmann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 08:09:04