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

.htaccess规则致PHP出现Too many redirects错误及JS无限重定向问题

解决.htaccess配置引发的无限重定向问题

问题根源

你的.htaccess规则存在两处核心问题:

  1. RewriteRule正则语法错误:所有规则中$/?$的写法无效,$代表URL的结束位置,不能连续使用。这种语法错误会导致规则匹配逻辑混乱,触发无限重定向。
  2. 静态文件排除逻辑存在隐患:虽然配置了排除JS、CSS等静态文件的条件,但错误的规则可能绕过该条件,导致静态文件被错误重写,陷入循环。

修正后的.htaccess规则

<IfModule mod_rewrite.c>
    Options +FollowSymLinks -MultiViews 
    RewriteEngine On

    # 排除静态资源,避免被重写规则处理
    RewriteCond %{REQUEST_URI} !\.(?:css|js|jpg|gif|png)$ [NC]
    # 修正正则语法:将$/?$改为/?$,允许末尾可选斜杠
    RewriteRule ^category/(.*)/?$ category.php?slug=$1 [NC,L]
    RewriteRule ^page/(.*)/?$ page.php?slug=$1 [NC,L]
    RewriteRule ^news-blog/(.*)/?$ news-blog.php?slug=$1 [NC,L]
    RewriteRule ^hospital/(.*)/?$ hospital.php?slug=$1 [NC,L]
    RewriteRule ^treatment/(.*)/?$ treatment.php?slug=$1 [NC,L]
    RewriteRule ^department/(.*)/?$ department.php?slug=$1 [NC,L]
    RewriteRule ^doctor/(.*)/?$ doctor.php?slug=$1 [NC,L]
    RewriteRule ^patientstory/(.*)/?$ patientstory.php?slug=$1 [NC,L]
    RewriteRule ^search/?$ search.php [NC,L]
</IfModule>
<IfModule mod_headers.c>
    <FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css|css)$">
        Header set Access-Control-Allow-Origin "*"
    </FilesMatch>
</IfModule>

关键说明

  • 修复正则语法:将所有规则中的$/?$替换为/?$,既支持带末尾斜杠的URL,也支持不带的,同时保证语法合法。
  • 强化静态文件保护:确保RewriteCond的排除逻辑正常生效,JS、CSS等静态文件不会被重写规则干扰。
  • 统一规则格式:给search规则也添加/?$,保持所有规则的一致性,避免特殊场景下的匹配异常。

内容的提问来源于stack exchange,提问作者Shruthi S M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 16:57:18