为WordPress配置.htaccess规则:除首页外URL前置/content
解决WordPress非首页URL前置/content的301重定向问题
要实现除首页外所有URL自动添加/content/前缀的301重定向,关键是把自定义重定向规则放在WordPress默认路由规则之前,同时避免重定向循环。以下是可行方案:
完整的.htaccess配置
将以下代码放在WordPress默认的# BEGIN WordPress代码块之前:
RewriteEngine On # 排除首页和已带/content/前缀的路径,防止循环重定向 RewriteCond %{REQUEST_URI} !^/$ RewriteCond %{REQUEST_URI} !^/content/ # 对所有符合条件的URL添加/content/前缀并执行301重定向 RewriteRule ^(.*)$ /content/$1 [L,R=301] # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
规则说明
RewriteCond %{REQUEST_URI} !^/$:筛选掉首页请求(根路径/),确保首页保持原URL不变RewriteCond %{REQUEST_URI} !^/content/:排除已经以/content/开头的URL,避免出现example.com/content/someposts/被再次重定向到example.com/content/content/someposts/的循环问题RewriteRule ^(.*)$ /content/$1 [L,R=301]:捕获除首页外的所有路径($1为捕获的路径内容),重定向到带/content/前缀的新URL;[L]表示这是当前匹配的最后一条规则,[R=301]标记为永久重定向,利于SEO
注意事项
- 先确认服务器已开启
mod_rewrite模块,否则重定向规则无法生效 - 测试阶段建议先用
R=302(临时重定向)验证规则逻辑,确认无误后再改为R=301,因为301重定向会被浏览器缓存,修改后需要清除缓存才能看到新结果 - 若站点有其他自定义重定向规则,需将它们放在上述自定义规则之后、WordPress默认规则之前
内容的提问来源于stack exchange,提问作者Federico
相关产品推荐
相关产品推荐

