WordPress中如何将子文件夹页面重定向至新文件夹?
正确的多级URL统一重定向方案(WordPress .htaccess)
嘿,我来帮你搞定这个重定向问题!你之前的两种方法都没踩对关键点,我给你梳理下正确的实现方式:
问题分析
你需要把所有以https://www.example.com/news/events/开头的多级页面(比如/news/events/event18、/news/events/2024/conference这类),统一跳转到https://www.example.com/focus,不需要保留原URL的后续路径。
方案1:使用RedirectMatch(简单直接)
你之前的RedirectMatch正则写错了,导致跳转到了错误的路径。正确的写法应该是:
RedirectMatch 301 ^/news/events/.*$ /focus
解释:
^/news/events/:匹配URL开头是/news/events/的请求.*$:匹配/news/events/后面的所有内容(不管有多少级子目录)/focus:目标跳转路径,最终会自动拼接成完整的域名URL
方案2:使用RewriteRule(更灵活,适配WordPress规则)
如果怕RedirectMatch和WordPress自带的重写规则冲突,推荐用mod_rewrite方案,记得把这段代码放在WordPress默认规则的前面(也就是# BEGIN WordPress注释块之前):
RewriteEngine On RewriteBase / # 排除真实存在的文件和目录,避免影响图片、CSS等静态资源访问 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 匹配/news/events/开头的所有URL,永久重定向到/focus RewriteRule ^news/events/.*$ /focus [R=301,L]
关键参数说明:
[R=301]:标记为永久重定向(SEO友好,浏览器会缓存这个重定向规则)[L]:表示这是最后一条规则,匹配后不再执行后续的重写规则(避免和WordPress的规则冲突)
重要注意事项
- 测试阶段用302临时重定向:把
R=301改成R=302,确认跳转正常后再改回301,避免浏览器缓存错误的重定向规则。 - 清除浏览器缓存:测试时用隐私窗口或者清除缓存,不然可能看不到最新的重定向效果。
- 备份.htaccess文件:修改前先备份,避免改错导致网站无法访问。
内容的提问来源于stack exchange,提问作者B4b4j1
相关产品推荐
相关产品推荐

