WordPress首页多语言重写规则404问题求助
多语言静态首页404问题解决方案
问题原因
你当前的重写规则仅匹配/xx/home这类路径,但实际访问的是/fr(无home后缀),规则不触发,因此返回404错误。
修复方案
1. 调整重写规则并注册查询变量
替换原有代码为以下内容,新增匹配根路径语言标识的规则,同时让WordPress识别lang参数:
function products_plugin_rules() { // 匹配 /fr 或 /fr/ 格式的语言路径,指向静态首页 add_rewrite_rule('^([a-z]{2})/?$', 'index.php?pagename=home&lang=$matches[1]', 'top'); // 保留原有 /xx/home 规则(若需保留该路径访问) add_rewrite_rule('([^/]*)/home', 'index.php?pagename=home&lang=$matches[1]', 'top'); } add_action('init', 'products_plugin_rules'); // 注册lang查询变量,确保WordPress能接收该参数 function register_lang_query_var($vars) { $vars[] = 'lang'; return $vars; } add_filter('query_vars', 'register_lang_query_var');
2. 刷新重写规则缓存
进入WordPress后台「设置」→「固定链接」,无需修改任何选项,直接点击「保存更改」,完成重写规则的刷新。
3. 模板中调用语言参数(可选)
若需根据语言参数切换首页内容,可在静态首页模板(如home.php)中添加以下代码获取语言标识:
$lang = get_query_var('lang', 'en'); // 默认英文 if ($lang === 'fr') { // 输出法语版首页内容 } else { // 输出英文版首页内容 }
内容的提问来源于stack exchange,提问作者Hitesh Khunt
相关产品推荐
相关产品推荐

