Ошибка 404 для поддиректории в мультисайте

3 нояб. 2014 г., 17:51:42
Просмотры: 35.3K
Голосов: 7

Я пытаюсь создать мультисайт в виде поддиректории и точно следовал инструкциям по настройке сети. Мультисайт, похоже, настроен правильно, файлы .htaccess и wp-config.php выглядят корректно, и я смог выполнить настройку сети, однако при переходе на страницу мультисайта появляется ошибка 404 - Not found. Это также мешает мне войти в панель администратора этого сайта.

Мой основной сайт по-прежнему работает нормально, и я могу войти в панель администратора там, а с помощью плагина я могу получить доступ к базе данных и управлять ею. Все newly созданные таблицы присутствуют, URL мультисайта и настройки выглядят правильно.

Я проверил, что файл .htaccess соответствует тому, что в WordPress. Я проверил правильность расположения .htaccess (корень public_html) и что он доступен для записи. Мы не думаем, что это проблема с постоянными ссылками, как предполагают многие источники в моем исследовании.

После обширного исследования я не смог найти решение, буду благодарен за любую помощь.

Вот мой файл .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [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]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>

и конец моего файла конфигурации:

/**
 * Для разработчиков: Режим отладки WordPress.
 *
 * Измените это на true, чтобы включить отображение уведомлений при разработке.
 * Настоятельно рекомендуется, чтобы разработчики плагинов и тем использовали WP_DEBUG
 * в своих средах разработки.
 */
define('WP_DEBUG', false);

/* Мультисайт */
define( 'WP_ALLOW_MULTISITE', true );

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'www.mybusinessconnect.com.au');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

/* Это все, прекратите редактирование! Счастливого блоггинга. */

/** Абсолютный путь к директории WordPress. */
if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

/** Подключает файлы с настройками WordPress. */
require_once(ABSPATH . 'wp-settings.php');
1
Комментарии

если требуется дополнительная настройка для Nginx, переключитесь на Apache

nodws nodws
1 февр. 2023 г. 20:39:48
Все ответы на вопрос 5
2

У меня была точно такая же проблема.

Мое решение: отредактировал файл /etc/apache2/sites-enabled/000-default.conf. Он должен выглядеть так:

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        <Directory />
                Options FollowSymLinks
                AllowOverride all
        </Directory>
        <Directory /var/www/>
                Options FollowSymLinks
                AllowOverride all
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Это работает!

23 февр. 2015 г. 14:59:18
Комментарии

Я знаю, что это Stack Exchange, и такие комментарии обычно не приветствуются, НО СПАСИБО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Alexandros Kourtis Alexandros Kourtis
20 мар. 2023 г. 02:09:29

Если у вас отсутствует файл .htaccess или вы не хотите его использовать, вам также нужно добавить блок mod_rewrite в 000-default.conf: https://gist.github.com/nicolasramy/3206657

JN01 JN01
6 мар. 2025 г. 14:10:10
0

Я столкнулся с такой же проблемой - в WordPress Multisite при создании нового сайта получал ошибку 404 для страницы сайта и админки, хотя главная админка и дашборд работали.

Моя проблема была в конфигурации Apache - файл /etc/apache2/httpd.conf. Нужно добавить 'AllowOverride All' в секцию <Directory "/Users/user1/Sites">

И не забудьте включить mod_rewrite в httpd.conf:

LoadModule rewrite_module libexec/apache2/mod_rewrite.so  

Иначе будет выдавать ошибку 500.

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

20 янв. 2019 г. 02:28:01
0

Согласно документации WordPress, эти правила htaccess предназначены для мультисайтов https://wordpress.org/support/article/htaccess/

#Пример для подпапок

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [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]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

#Пример для поддоменов

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]

Именно эти правила я использовал без проблем на хостинговом сайте.

2 сент. 2017 г. 05:35:05
1

У меня была такая же проблема, и я перепробовал всё! Оказалось, что в начале моего файла htaccess не было точки. Я работаю в Windows, и по какой-то причине точка исчезла.

Чтобы добавить точку перед файлом в Windows, переименуйте файл в .htaccess. и Windows удалит последнюю точку, оставив первую.

15 нояб. 2019 г. 16:37:00
Комментарии

Обычно в Windows файлы с точкой в начале имени скрыты, и вам нужно выбрать соответствующую опцию, чтобы сделать их видимыми.

Alexandros Kourtis Alexandros Kourtis
8 февр. 2023 г. 18:34:17
0

Хочу упомянуть одну потенциальную причину, которая довольно очевидна, но на самом деле сложно обнаруживается: использование запрещённых символов в пути URL подсайта.

Как указано в WordPress Codex:

Адрес сайта: Разрешены только символы a-z и 0-9.

Использование запрещённых символов (например, точек) в пути поддиректории приводит к тому, что правила перезаписи в файле .htaccess не срабатывают, в результате чего сервер возвращает ответ 404.

Проработав несколько лет с профессиональными проектами на WordPress, я считал себя как минимум компетентным в этой теме, но должен признать, что потратил 2-3 часа на отладку проблемы, а затем осознал, что совершил ошибку новичка. :)

14 янв. 2020 г. 11:29:06