Мультисайтовые поддомены приводят к ошибке 403 Запрещено

Вопрос или проблема

Итак, я настроил многосайтовую сеть в соответствии с страницей сайта WordPress: https://codex.wordpress.org/Create_A_Network

Я использую последнюю версию WordPress 4.8.

Настройка

  • example.com
  • sub.example.com

Все запросы к поддомену для панели управления и сайта дают

403 – доступ запрещен. У вас нет разрешения на доступ к / на этом сервере.

.htaccess

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]

    # добавьте завершающий слэш к /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]

Разрешения установлены как в WordPress - строгие, которые работают нормально:

sudo find . -type d -exec chmod -R 755 {} \;; sudo find . -type f -exec chmod 644 {} \;; sudo chmod 444 wp-config.php .htaccess ; sudo chmod -R 755 wp-content ; sudo chmod -R 775 wp-content/uploads/ ; sudo chgrp -R admin . && sudo chown -R admin:www-data wp-content

Я настроил поддомены на своем сервере и указал корневые каталоги документов на основной сайт example.com.

Я искал несколько часов, почему это не работает, но не могу найти решения… может кто-нибудь помочь?

https://wordpress.stackexchange.com/a/135740/141068

Я использовал приведенную выше ссылку, чтобы исправить свою проблему.

Вы можете проверить, чтобы ваш поддомен с подстановочным знаком указывал на ту же папку, что и папка основного установки WordPress.

Например, если example.com установлен в public_html/example.com, то *.example.com должно быть добавлено в ту же public_html/example.com.

Ответ или решение

Решение проблемы 403 Forbidden для подсайтов WordPress с использованием поддоменов

При создании сети мультисайтов на WordPress с использованием поддоменов могут возникнуть ошибки доступа, такие как 403 Forbidden, которые препятствуют корректной работе администраторской панели и страниц поддоменов. Рассмотрим ключевые аспекты решения этой проблемы.

1. Правильная настройка DNS и поддоменов

Для начала убедитесь, что DNS-запись вашего wildcard поддомена настроена правильно. Она должна указывать на тот же IP-адрес, что и основной домен. А именно, в DNS-записях необходимо иметь запись типа A для *.example.com, которая указывает на IP-адрес вашего сервера.

*.example.com    A    <YOUR_SERVER_IP>

2. Правильное конфигурирование веб-сервера

Убедитесь, что ваш веб-сервер (Apache, Nginx и т. д.) настроен правильно для работы с мультисайтом. Для Apache необходимо, чтобы в конфигурации вашего виртуального хоста была активирована директива AllowOverride:

<Directory /path/to/your/wordpress/>
    AllowOverride All
</Directory>

Это позволит файлу .htaccess управлять переопределениями для URL-адреса.

3. Проверка .htaccess

Ваш файл .htaccess должен быть правильно настроен для поддержки системы мультисайтов. Убедитесь, что он содержит следующие строки:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# Добавление завершающего слэша для /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]

4. Проверка разрешений файлов и каталогов

Проверьте, что у файлов и каталогов установлены корректные разрешения. Как указано в вашем описании, разрешения должны быть следующими:

  • Директории: 755
  • Файлы: 644
  • .htaccess и wp-config.php: 444

Вы также можете выполнить команды, указанные в вашем описании, чтобы установить эти разрешения правильно.

sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 644 {} \;
sudo chmod 444 wp-config.php .htaccess
sudo chmod -R 755 wp-content
sudo chmod -R 775 wp-content/uploads/

5. Проверка конфигурации WordPress

Убедитесь, что ваша конфигурация wp-config.php корректная и содержит следующие строки для поддержки мультисайтов:

define('WP_ALLOW_MULTISITE', true);
define('SUBDOMAIN_INSTALL', true); // для поддоменов
define('DOMAIN_CURRENT_SITE', 'example.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

6. Разрешение проблемы

Другой возможной причиной ошибки 403 может быть неправильная настройка сервера или конфликты в правилах переписывания URL. Убедитесь, что настройки вашего сервера не блокируют доступ к поддоменам.

Заключение

После выполнения всех вышеперечисленных шагов, попробуйте заново получить доступ к панелям администрирования вашего виртуального сайта и поддоменам. Если ошибка 403 сохраняется, возможно, стоит обратиться к логам вашего веб-сервера (например, error.log в Apache или Nginx), чтобы получить дополнительную информацию о причине проблемы. Также может быть полезно обратиться к поддержке вашего хостинг-провайдера, если вы подозреваете, что проблема на стороне сервера.

Оцените материал
Добавить комментарий

Капча загружается...