.htaccess配置WordPress除首页、wp-admin外所有页面302跳转
WordPress .htaccess 302重定向配置方案
规则失效常见原因
网上多数同类方案不生效,核心问题是规则放置位置错误:自定义重定向规则必须放在WordPress默认生成的# BEGIN WordPress注释块的前面,不能放到WP默认规则的后方,否则会被WordPress自带的重写逻辑优先匹配,自定义规则完全不会执行。
可用配置代码
将以下代码粘贴到站点根目录.htaccess文件的最顶部(即WordPress默认规则之前)即可:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # 放行路径:匹配到以下路径时不触发跳转 # 1. 放行网站首页 RewriteRule ^$ - [L] # 2. 放行wp-admin后台全路径,包含后台所有子页面、后台加载的静态资源 RewriteRule ^wp-admin(.*)$ - [L] # 3. 放行WordPress登录入口,避免无法登录后台,不需要可删除 RewriteRule ^wp-login\.php$ - [L] # 4. 放行跳转落地页本身,避免无限重定向报错 RewriteRule ^redirect-page$ - [L] # 可选:如果跳转落地页需要加载CSS/JS/图片等静态资源,删除下面行开头的#即可放行全站静态资源 # RewriteRule \.(css|js|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf)$ - [L] # 跳转规则:其余所有路径返回302状态码,跳转到/redirect-page落地页 RewriteRule ^(.*)$ /redirect-page [R=302,L] </IfModule> # 以下为WordPress默认生成的规则,不要做任何修改 # BEGIN WordPress # ...... 原有WP默认规则保持原样 ...... # END WordPress
注意事项
- 规则中的
[L]标记代表匹配到当前规则后立即停止处理后续重写逻辑,保证放行路径不会被跳转规则命中 - 跳转使用
R=302标准临时重定向状态码,不会被浏览器长期缓存,调试阶段不会被旧缓存干扰效果,后续如果要改成永久重定向把302改成301即可 - 如果跳转后的落地页出现样式丢失、图片加载失败的问题,启用配置里注释的静态资源放行规则即可
- 配置上传后如果没有立刻生效,清理浏览器缓存、WordPress缓存插件的站点缓存后再测试
内容的提问来源于stack exchange,提问作者Mateo
相关产品推荐
相关产品推荐

