WordPress站点.htaccess 301重定向:排除含category的URL
解决WordPress .htaccess重定向排除分类页面的问题
我明白你的需求了——你现在的规则会把带page或mact参数的前端URL都重定向到首页,但不小心把包含category的分类页面(比如分页的分类页)也给重定向了,需要把这类URL排除在外。
修改后的.htaccess配置
你只需要在现有规则里添加一条排除category路径的条件即可,以下是完整的配置:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{THE_REQUEST} \s/+index\.php[?/\s] [NC] RewriteRule ^ /? [L,R=301] # 修改的核心部分:添加排除category路径的条件 RewriteCond %{QUERY_STRING} ^(?:page|mact)= [NC] RewriteCond %{REQUEST_URI} !^/category/ [NC] RewriteRule !^wp-admin/ /? [L,R=301,NC] RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
关键修改说明
- 新增的
RewriteCond %{REQUEST_URI} !^/category/ [NC]规则的作用是:排除所有路径以/category/开头的URL,这样即使这类URL带有page或mact参数,也不会触发重定向到首页的规则。 [NC]标记是忽略大小写,确保不管URL里的category是大写还是小写都能匹配到。
验证效果
修改完成后,你可以测试以下两种场景:
- 带
page参数的普通页面:比如www.domain.com/?page=test,会正常重定向到首页 - 带
page参数的分类页面:比如www.domain.com/category/general/page/3/?page=page,不会被重定向,保持原页面访问
这样就完美解决了你的问题,既保留了原本的重定向需求,又排除了分类页面的误重定向。
内容的提问来源于stack exchange,提问作者sc2015
相关产品推荐
相关产品推荐

