修改WordPress多站点主站点URL:配置fr子目录访问
解决WordPress多站点主站点强制使用/fr/子目录URL的方案
核心思路
通过调整wp-config.php配置、修改.htaccess重写规则,结合WordPress内部设置,让主站点所有URL统一以/fr/开头,同时将原有根路径的请求301重定向到带/fr/的URL,保持和其他子站点格式一致。
1. 调整wp-config.php配置
打开wp-config.php,替换并补充以下配置项:
define( 'WP_DEBUG', false ); // 启用多站点 define( 'MULTISITE', true ); define( 'WP_ALLOW_MULTISITE', true ); // 子目录模式 define( 'SUBDOMAIN_INSTALL', false ); // 修改主站点路径为/fr/ define( 'DOMAIN_CURRENT_SITE', 'dev.agency.xyz' ); define('PATH_CURRENT_SITE', '/fr/'); define( 'SITE_ID_CURRENT_SITE', 1 ); define( 'BLOG_ID_CURRENT_SITE', 1 ); // Cookie配置适配/fr/路径 define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST'] ); define('ADMIN_COOKIE_PATH', '/fr/'); define('COOKIEPATH', '/fr/'); define('SITECOOKIEPATH', '/fr/');
2. 修改.htaccess重写规则
替换原有WordPress区块的内容,添加根路径跳转和/fr/路径解析规则:
# BEGIN WordPress RewriteEngine On RewriteBase / # 根目录请求重定向到/fr/ RewriteRule ^$ /fr/ [R=301,L] # 根目录下非子站点的页面重定向到/fr/开头的URL RewriteCond %{REQUEST_URI} !^/(fr|pt|en)/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /fr/$1 [R=301,L] # 处理上传文件 RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L] # 给/wp-admin添加尾部斜杠 RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] # 解析/fr/开头的WP核心文件 RewriteRule ^fr/(wp-(content|admin|includes).*) $1 [L] RewriteRule ^fr/(.*\.php)$ $1 [L] # 解析其他子站点的核心文件 RewriteRule ^(pt|en)/(wp-(content|admin|includes).*) $1 [L] RewriteRule ^(pt|en)/(.*\.php)$ $1 [L] RewriteRule . index.php [L] # END WordPress
3. WordPress后台设置调整
- 通过
dev.agency.xyz/fr/wp-admin登录主站点后台 - 进入设置 → 固定链接,直接点击「保存更改」,让WordPress更新URL生成规则
- 进入设置 → 常规,确认「站点地址(URL)」和「WordPress地址(URL)」均为
dev.agency.xyz/fr/,若未自动更新则手动修改并保存
注意事项
- 修改前务必备份
wp-config.php和.htaccess文件,避免配置错误导致站点无法访问 - 301重定向为永久跳转,可确保搜索引擎和用户的旧URL自动导向新格式
- 测试所有核心页面:首页、内页、后台入口,确认访问正常且URL符合预期
内容的提问来源于stack exchange,提问作者Jérémie LERIGAB
相关产品推荐
相关产品推荐

