如何用.htaccess将含wp-admin的带参错误URL重定向至正确地址?
解决.htaccess重定向问题
正确的重定向规则
直接替换你原来的规则为以下代码:
RewriteEngine On RewriteRule ^wp-admin/https://example.com/?$ / [R=301,L,NC,QSA]
规则说明
- 匹配逻辑:
^wp-admin/https://example.com/?$匹配解码后的URL路径(mod_rewrite中RewriteRule会自动解码路径里的URL编码字符),末尾的/?允许路径最后带或不带斜杠。 - 目标路径:
/指向网站根目录,会自动拼接成你的域名根地址https://example.com/。 - QSA标记:自动保留原URL的查询参数(即
?latepoint_booking_intent_key=xxx部分),无需手动编写参数,避免覆盖或错误。 - R=301:永久重定向,测试阶段可改成
R=302临时重定向,避免浏览器缓存影响测试;确认正常后再改回301。 - L标记:处理完这条规则后停止后续规则解析,避免冲突。
你原有规则的问题
- 使用了URL编码后的
%3A%2F%2F,但RewriteRule匹配的是解码后的路径,导致无法命中目标路径。 - 规则未设置捕获组,
$1为空值,手动写?latepoint_booking_intent_key=$1会覆盖原查询参数,造成参数错误。 - 缺少
QSA标记,无法自动保留原查询参数。
额外注意
- 将这条规则放在WordPress默认规则(
# BEGIN WordPress注释之前),避免被WP的规则覆盖。 - 测试前清空浏览器缓存,或用隐私窗口访问,防止旧的301缓存干扰结果。
内容的提问来源于stack exchange,提问作者Ské
相关产品推荐
相关产品推荐

