修复使用子域的WordPress多站点网络上的403错误

时间:2019-03-06 作者:ZWPDev

我安装了WordPress,并将其转换为多站点网络。我正在使用cPanel,并按照所有说明配置WordPress安装。我已经设置了子域模式,所以对于每个新网站,我都需要使用共享托管提供商的cPanel创建一个子域。

问题是,每次我尝试访问子域网站时,都会出现403错误。我如何解决这个问题.htaccess 代码正确吗?

注意:创建时,每个子域在服务器上都有自己的目录,因此,例如,如果在cPanel中设置mysite.example.com 作为子域,将在服务器的根目录中创建相对目录,名称为mysite.example.com. 我已经读到,子域必须指向WordPress的主安装目录。我也设置了通配符,但没有成功。

这是.htaccess 密码

# BEGIN Custom
<IfModule mod_rewrite.c>
Options All -Indexes
Options FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]
</IfModule>

<IfModule mod_headers.c>
#Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header set X-Content-Type-Options nosniff
Header set X-XSS-Protection "1; mode=block"
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
Header unset X-Powered-By
Header unset X-Pingback
Header unset SERVER
</IfModule>

<FilesMatch "(^\\.|wp-config(-sample)*\\.php)">
Order Deny,Allow
Deny from all
</FilesMatch>

# END Custom


# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
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]
</IfModule>

# END WordPress
wp-config.php 密码

// HTTPS
if( strpos($_SERVER[\'HTTP_X_FORWARDED_PROTO\'], \'https\') !== false) $_SERVER[\'HTTPS\'] = \'on\';

define(\'MULTISITE\', true);
define(\'SUBDOMAIN_INSTALL\', true);
define(\'DOMAIN_CURRENT_SITE\', \'mysite.com\');
define(\'PATH_CURRENT_SITE\', \'/\');
define(\'SITE_ID_CURRENT_SITE\', 1);
define(\'BLOG_ID_CURRENT_SITE\', 1); 

1 个回复
SO网友:MrWhite

every subdomain has it\'s own directory on the server 创建时,例如,如果在cPanel中设置mysite.example.com 作为子域,将在服务器的根目录中创建相对目录,名称为mysite.example.com. I\'ve read that the subdomains must point to the main wordpress installation directory.

你似乎在回答你自己的问题。是的,子域都需要指向主WordPress安装。这就是多站点的工作方式,所有请求都由相同的WordPress安装、相同的前端控制器(根目录中的mod\\u rewrite指令)处理.htaccess 文件)。

在cPanel中创建子域时,您应该完全控制子域“文档根”。(如果需要,它甚至允许您将其指向完全位于主域文档根目录之外的目录。)

通过创建指向子目录的子域,您可以设置DocumentRoot 该子域的子目录。它不一定能够访问上面目录中的文件(主域文档根目录)。

当您访问子域时,它可能没有索引文档(并且目录列表被禁用),那么默认情况下,您将得到403禁止响应。

相关推荐

Config.php issue in WordPress

最近在我的网站上遇到了一个问题。不知道这是什么时候发生的,怎么发生的。我在这个特定网站上的所有网页顶部都显示了以下消息。“注意:常量FS\\u CHMOD\\u DIR已在/home/mc4ebqy52sd6/public\\u html/khwajagharibnawaz中定义。组织/工作包配置。php在线101“网站名为khwajagharibnawaz。组织机构我是WordPress上的一个电枢,不过我看了一下配置。php文件和l01行只是一个文本行,说明以下内容:100*有关可用于调试的其他常数的