GoDaddy cPanel Apache环境WordPress子域名多站点访问错误求助
解决方案
第一步:修正cPanel子域名的根目录配置(最优解)
- 登录GoDaddy cPanel,进入「Subdomains」管理页
- 找到已创建的
subsite.domainName.xyz子域名,点击修改根目录(Document Root) - 直接将根目录设置为主站点的WordPress根目录
public_html,不要使用cPanel默认生成的public_html/subsite独立目录,保存修改
核心原理:WordPress子域名多站点本身不需要为每个子域名创建独立目录,所有子站点的请求都要交给主站点根目录的WordPress核心处理,给子域名分配独立目录是导致初始403/404错误的根本原因。
第二步:验证主站点.htaccess规则
确认主站点public_html目录下的.htaccess已经配置子域名多站点的标准重写规则,如有不一致直接替换:
RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^wp-admin$ wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^(wp-(content|admin|includes).*) $1 [L] RewriteRule ^(.*\.php)$ $1 [L] RewriteRule . index.php [L]
第三步:必须保留独立子目录时的index.php配置
如果因其他配置要求必须保留子域名对应的独立目录,不需要复制全量WordPress文件,直接在子目录下新建index.php,写入以下内容即可:
<?php /** * 子站点入口,指向主站点WordPress核心 */ define('WP_USE_THEMES', true); require dirname( __FILE__ ) . '/../index.php';
- 路径可根据子目录层级调整,以上代码适配子目录为
public_html/subsite的场景,/../会自动回到public_html主目录加载核心文件 - 不要直接复制主站点的index.php,主站点index.php的路径基于根目录编写,放到子目录下路径不匹配会触发500错误
第四步:权限验证
如果修改后仍有权限报错,检查子目录权限设置为755,目录内文件权限设置为644,所有者与主站点public_html目录保持一致即可。修改完成后清除浏览器缓存和服务器缓存即可正常访问。
内容的提问来源于stack exchange,提问作者LoudCloudDragon
相关产品推荐
相关产品推荐

