使用.htaccess移除URL中的/en-ae/片段并实现自动重定向(WordPress站点TranslatePress移除后SEO适配需求)
如何通过.htaccess移除URL中的/en-ae/片段并实现永久重定向
嗨,我来帮你搞定这个重定向需求。既然你已经移除了TranslatePress插件,把旧的带/en-ae/前缀的URL永久重定向到干净的新URL是非常关键的——这能避免搜索引擎收录重复内容,还能保留之前积累的流量权重。
以下是具体的实现步骤,直接在你的.htaccess文件中添加规则即可:
具体的.htaccess规则
# 开启重写引擎 RewriteEngine On # 匹配所有带/en-ae/前缀的URL,并重定向到去掉前缀的对应页面 RewriteCond %{REQUEST_URI} ^/en-ae/(.*)$ RewriteRule ^(.*)$ /%1 [L,R=301]
关键说明
放置位置很重要:一定要把这段代码放在WordPress自动生成的
# BEGIN WordPress和# END WordPress注释块之前。因为Apache是从上到下处理规则的,放在WordPress规则之后的话,可能会被WordPress的默认重写规则覆盖,导致不生效。规则细节解释:
RewriteEngine On:开启Apache的URL重写功能,这是所有重定向规则的基础。RewriteCond %{REQUEST_URI} ^/en-ae/(.*)$:这条条件用来匹配所有以/en-ae/开头的URL,(.*)会把/en-ae/后面的所有内容捕获到变量%1中。RewriteRule ^(.*)$ /%1 [L,R=301]:把捕获到的内容(也就是/en-ae/后面的部分)重定向到网站根目录下的对应路径。R=301表示这是永久重定向,会告诉搜索引擎更新它们的索引,把旧URL的权重转移到新URL上;L表示这是最后一条要处理的规则,避免后续规则干扰。
测试验证:添加规则后,直接在浏览器中输入旧的URL(比如
example.com/en-ae/hair-transplant),检查是否自动跳转到example.com/hair-transplant,并且浏览器的网络请求状态码是301。额外注意:如果你的服务器不支持
mod_rewrite模块(这种情况很少见),需要联系主机商开启该模块,否则规则不会生效。
内容的提问来源于stack exchange,提问作者Muhammad Sufyan
相关产品推荐
相关产品推荐

