如何解决htaccess配置API域名加/en前缀出现的重定向次数过多问题
你遇到的重定向次数过多问题,是因为现有规则没有排除已经包含/en/或/ar/前缀的请求,导致重定向后的地址仍然命中重定向规则,不断拼接/en/前缀,最终触发浏览器的重定向次数限制报错。
解决方案
调整.htaccess配置如下即可:
RewriteEngine on RewriteCond %{HTTP_HOST} ^api\.example\.com [NC] # 排除已带有 /en/ 或 /ar/ 前缀的请求 RewriteCond %{REQUEST_URI} !^/(en|ar)/ [NC] RewriteRule ^(.*)$ https://api.example.com/en/$1 [R=301,L]
规则说明
- 新增的
RewriteCond %{REQUEST_URI} !^/(en|ar)/ [NC]用于过滤请求路径:只要路径已经以/en/或/ar/开头,就不会执行后续的重定向逻辑,从根本上避免了循环重定向。 - 规则中对域名的点号做了转义处理(
api\.example\.com),是更严谨的写法,避免匹配到格式相似的其他意外域名。
注意事项
修改配置后需要清空浏览器缓存再测试,因为301是永久重定向,浏览器会长期缓存旧的重定向规则,未清缓存可能仍然会看到之前的报错。
内容的提问来源于stack exchange,提问作者user16643863
相关产品推荐
相关产品推荐

