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

.htaccess RewriteRule配置返回500错误 如何让原重写规则正常生效

问题原因

出现500错误是因为你的第一版重写规则触发了无限重定向循环:^([^\/]+)\/?$ 可以匹配所有单级路径,包括重写后的目标路径 /landing/ 本身,重写后的请求会再次被规则捕获反复执行,直到服务器触发重定向次数上限返回500。加了articles/前缀后规则不会匹配到/landing/路径,所以不会触发循环。


解决方案

增加重写条件排除循环场景和真实存在的资源即可,修改后完整配置如下:

RewriteEngine on
# 排除重写目标路径,打破循环
RewriteCond %{REQUEST_URI} !^/landing/
# 排除真实存在的文件,避免静态资源、404页面等被异常重写
RewriteCond %{REQUEST_FILENAME} !-f
# 排除真实存在的目录
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\/]+)\/?$ /landing/?city=$1 [L]
ErrorDocument 404 /404.html

如果你的城市名有固定的格式规则(比如仅包含字母、数字),还可以把重写规则的匹配逻辑改得更精准,进一步降低误匹配概率:
RewriteRule ^([a-zA-Z0-9]+)\/?$ /landing/?city=$1 [L]


内容的提问来源于stack exchange,提问作者Stanislav Nasonov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:30:04