能否通过RewriteMod实现WordPress站点site.ro跳转至site.com/?lang=ro?
用RewriteMod实现域名定向并自动添加语言查询参数
完全可以通过Apache的mod_rewrite实现你的需求,不用改动WordPress插件或现有配置,直接在站点根目录的.htaccess文件里添加规则即可:
具体规则代码
# 针对site.ro域名的重定向规则 RewriteEngine On # 匹配site.ro域名的请求(忽略大小写) RewriteCond %{HTTP_HOST} ^site\.ro$ [NC] # 检查请求里还没有lang参数,避免重复追加 RewriteCond %{QUERY_STRING} !(^|&)lang= [NC] # 重定向到site.com,保留原有路径和查询参数,追加lang=ro RewriteRule ^(.*)$ https://site.com/$1?%{QUERY_STRING}&lang=ro [L,R=302,NE]
关键细节说明
[NC]:忽略域名大小写,确保Site.Ro这类写法也能被匹配[L]:执行完这条规则后停止后续规则处理,避免和WordPress自带规则冲突[R=302]:临时重定向,测试确认效果正常后,可以改成R=301永久重定向[NE]:防止查询参数里的特殊字符被转义,保证参数能正常传递到站点
规则放置位置
必须把这段规则放在WordPress默认Rewrite规则之前,也就是.htaccess文件里# BEGIN WordPress注释的上方,否则WordPress的规则会优先执行,导致自定义规则失效。
效果验证
- 访问
site.ro会自动跳转到site.com?lang=ro - 访问
site.ro/about-us会跳转到site.com/about-us?lang=ro - 访问
site.ro/post?cat=1会跳转到site.com/post?cat=1&lang=ro site.com的所有请求不受影响,正常显示原有内容
内容的提问来源于stack exchange,提问作者jean d'arme
相关产品推荐
相关产品推荐

