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

htaccess同域名重定向异常:URL追加参数致站点崩溃求助

问题分析与解决方案

问题背景

同一域名下配置了两条永久重定向规则,但从原页面点击重定向链接时,URL会自动追加语言参数(?strLangue=fr),进而导致站点崩溃。原重定向规则如下:

Redirect permanent /fr/pages/8-ever-l/ /fr/artists/1-everl-l/
Redirect permanent /fr/pages/9-arnaud-bissot/ /fr/artists/2-arnaud-bissot/

核心原因

你使用的Redirect permanent属于Apache的mod_alias模块,它的默认行为是自动传递原URL的所有查询字符串。当原链接带有?strLangue=fr参数时,这个参数会被直接追加到目标URL末尾,导致目标页面接收到意料之外的参数,最终引发站点崩溃。

解决方案

方案1:完全丢弃查询字符串

改用mod_rewrite模块的规则,通过规则末尾的?明确告知Apache不传递原查询字符串:

RewriteEngine On
RewriteRule ^/fr/pages/8-ever-l/$ /fr/artists/1-everl-l/? [R=301,L]
RewriteRule ^/fr/pages/9-arnaud-bissot/$ /fr/artists/2-arnaud-bissot/? [R=301,L]

这里的?是关键,它会清空原URL的查询参数,确保目标URL干净无额外参数。

方案2:仅移除特定语言参数(保留其他参数)

如果需要保留原URL中的其他查询参数,只移除strLangue=fr,可以使用以下规则:

RewriteEngine On
# 处理第一条重定向
RewriteCond %{QUERY_STRING} ^(.*&)?strLangue=fr(&.*)?$
RewriteRule ^/fr/pages/8-ever-l/$ /fr/artists/1-everl-l/?%1%2 [R=301,L]
# 处理第二条重定向
RewriteCond %{QUERY_STRING} ^(.*&)?strLangue=fr(&.*)?$
RewriteRule ^/fr/pages/9-arnaud-bissot/$ /fr/artists/2-arnaud-bissot/?%1%2 [R=301,L]

这个规则会匹配并移除strLangue=fr参数,同时保留其他可能存在的查询参数。

内容的提问来源于stack exchange,提问作者Gerits Aurelien

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:42:39