You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多域名服务器下通过.htaccess配置WordPress语言子目录

多域名环境下WordPress语言子目录的.htaccess修复方案

一、先调整根目录的.htaccess规则

给domain3添加对应的转发规则,兼容语言子目录路径:

# domain 3 - 统一跳转到非www域名
RewriteCond %{HTTP_HOST} www.domain3.com
RewriteRule (.*) http://domain3.com/$1 [L,QSA,R=301]

# 把domain3的所有请求(含语言子目录)转发到对应WP目录
RewriteCond %{HTTP_HOST} ^domain3.com
RewriteRule !^$ apps/wp_domain3%{REQUEST_URI} [L]

这条规则会把domain3.com/es/xxx这类请求完整转发到apps/wp_domain3/es/xxx,确保WP能识别语言子目录路径。

二、修改domain3对应的WP目录内的.htaccess

找到apps/wp_domain3里的.htaccess,替换成以下配置,专门适配语言子目录:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# 直接放行index.php
RewriteRule ^index\.php$ - [L]

# 处理语言子目录请求,同时放行真实存在的文件/目录(解决样式丢失)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]{2})/(.*)$ index.php?lang=$1&$2 [L,QSA]

# 处理非语言子目录的常规WP请求
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

关键作用说明

  • 样式/静态资源修复:!-f和!-d判断会跳过真实存在的css、js、图片文件,直接返回,不会被重写规则干扰,解决样式丢失问题。
  • 语言子目录路由:匹配两位语言码的子目录(比如/es/),把语言参数传递给WP,同时保留后续的请求路径,让WP能正确识别语言环境。
  • 后台/登录修复:wp-admin/是真实存在的目录,会被!-d跳过重写,直接访问;配合你已经改好的数据库home和siteurl(需设为http://domain3.com/es/),登录时的重定向会自动适配语言子目录,避免跳转错误。

三、测试步骤

  1. 清空浏览器缓存,访问domain3.com/es/,检查页面样式是否正常加载。
  2. 访问domain3.com/es/wp-admin/,尝试登录后台,确认能正常进入和操作。
  3. 测试登录后的跳转,确保没有循环重定向或错误路径。

内容的提问来源于stack exchange,提问作者Insomnia88

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:12:50