Вопрос или проблема
Я пытаюсь установить WordPress в подпапку существующей установки WordPress. Я создал подпапку /wp
, распаковал свежую версию WordPress в этом каталоге и добавил файл .htaccess
со следующим содержимым:
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
Однако, когда я посещаю mysite.com/wp
, я получаю ошибку 404 не найдено. Я уже пробовал следующее: перезапустил Apache и добавил содержимое .htaccess
в корневой .htaccess
. Но это не помогло.
Я не работал с Apache достаточно долго, так что это не тестировалось. RewriteBase — это база для вашего правила переписывания, так что она добавляется к вашему правилу автоматически, и ваш .htaccess
должен выглядеть примерно так:
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
Смотрите здесь для дальнейшего объяснения: https://stackoverflow.com/questions/704102/how-does-rewritebase-work-in-htaccess
Кроме того, вам, вероятно, стоит поместить это только в файл .htaccess
внутри вашего каталога /wp
.
Ответ или решение
Установка второй версии WordPress в подпапку: Решение проблемы с ошибкой 404
При попытке установить WordPress в подпапку (например, /wp
) существующей установки WordPress может возникнуть ошибка 404 при обращении к URL mysite.com/wp
. Данная ситуация требует тщательной настройки конфигурационных файлов и проверки наличия необходимых условий для корректной работы второй установки. В этой статье мы рассмотрим все шаги, необходимые для решения данной проблемы и успешной установки WordPress.
Шаг 1: Создание подпапки и загрузка файлов
Вы уже создали подпапку /wp
и распаковали свежую версию WordPress. Прежде всего, убедитесь, что вы разместили все файлы WordPress непосредственно в этой подпапке. Структура папки должна выглядеть следующим образом:
/wp
/wp-admin
/wp-content
/wp-includes
index.php
wp-config-sample.php
...
Шаг 2: Настройка .htaccess
Правильная конфигурация файла .htaccess
имеет решающее значение для работы перенаправлений и модулей перезаписи. Убедитесь, что в папке /wp
создан файл .htaccess
со следующим содержимым:
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
Примечание: Для того чтобы не возникала путаница, важно размещать данный файл только в папке /wp
, а не в корневом .htaccess
.
Шаг 3: Проверка конфигурации Apache
Для успешной работы перезаписи в Apache необходимо убедиться, что модуль mod_rewrite
включен. Вы можете проверить это, выполнив команду:
sudo a2enmod rewrite
Не забудьте перезапустить Apache после внесения изменений:
sudo systemctl restart apache2
Кроме того, проверьте конфигурацию виртуального хоста (обычно в файле /etc/apache2/sites-available/000-default.conf
или аналогичном). Убедитесь, что директива AllowOverride
установлена на All
, чтобы правила в .htaccess
работали:
<Directory /var/www/html>
AllowOverride All
</Directory>
Шаг 4: Проверка разрешений файловой системы
Убедитесь, что права доступа к папке /wp
и ее содержимому установлены корректно. Apache должен иметь доступ на чтение и выполнение всех файлов. Например:
sudo chown -R www-data:www-data /var/www/html/wp
sudo chmod -R 755 /var/www/html/wp
Шаг 5: Установка и первоначальная конфигурация WordPress
Теперь, когда все предварительные условия выполнены, зайдите по следующему URL для завершения установки WordPress:
mysite.com/wp/wp-admin/install.php
Следуйте инструкциям на экране, чтобы завершить процесс установки.
Заключение
Следуя указанным выше шагам, вы сможете правильно установить вторую версию WordPress в подпапку без возникновения ошибки 404. Если проблемы сохраняются, обратите внимание на логи веб-сервера, которые могут дать больше информации о причине ошибки. Они обычно расположены по пути /var/log/apache2/error.log
.
Используйте это руководство как практическое пособие при работе с установками WordPress и настройкой серверов.