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

.htaccess中特定RewriteRule 301重定向失效问题排查求助

解决.htaccess特定页面重定向失效的问题

核心原因:规则顺序错误

你的特定页面重定向规则无法生效,本质是规则执行顺序不对。当前你的内部美化URL规则(RewriteRule ^tours/([^/]*)/$ ...)会优先匹配/tours/live-in-las-vegas-2020/,直接将请求转发到index.php,导致301重定向规则根本没有执行的机会。

正确的规则排列方案

必须把特定页面的301重定向规则放在内部美化URL规则的前面,同时要确保在末尾补斜杠的规则之后(补斜杠规则会先处理无斜杠的URL,保证重定向匹配的准确性)。调整后的完整.htaccess代码如下:

RewriteEngine On
# 强制HTTPS跳转
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# 统一域名跳转
RewriteCond %{HTTP_HOST} !^(.*)\.rwdb.info$ [NC]
RewriteRule ^(.*)$ https://www.rwdb.info/$1 [R=301,L]

# 非文件请求自动补末尾斜杠
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [NE,L,R=301]

# --- 301重定向规则区 ---
# 特定移除页面的重定向
RewriteRule ^tours/live-in-las-vegas-2020/$ /tours/live-in-las-vegas-2019/ [R=301,NC,L]
# tours首页重定向到分页第一页
RewriteRule ^tours/$ /tours/page/1/ [R=301,NC,L]

# --- 内部URL美化规则区 ---
RewriteRule ^tours/page/([^/]*)/$ /index.php?type=tour&page=$1 [L]
RewriteRule ^tours/([^/]*)/$ /index.php?type=tour-detail&seo_link=$1 [L]

Options All -Indexes
Options +FollowSymLinks

额外注意点

  • 清除浏览器缓存:301是永久重定向,浏览器会缓存旧的跳转记录,测试前务必清除缓存或使用无痕模式访问。
  • 保留L标记:每条301重定向规则的L标记要保留,确保执行完当前规则后停止后续处理,避免无效匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:40:13