Перенос WordPress в подкаталог без изменения URL-адресов
В настоящее время у меня есть сайт на site.com, и WordPress установлен в корневой папке сайта. Мой сайт включает страницы, такие как:
- site.com
- site.com/page
- site.com/2015/10/01/post....
- site.com/login
- site.com/wp-content/uploads/...
Я хочу переместить все файлы WordPress в один подкаталог для удобства, НЕ ИЗМЕНЯЯ при этом ни одного публичного URL. Другие посты и официальная документация говорят о "Выделении WordPress отдельного каталога", но требуют изменения URL:
- https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory (site.com будет загружать главную страницу, но все остальные публичные URL изменятся)
- Перенос WordPress в папку без изменения URL (похожий вопрос, но обсуждает установку нескольких блогов)
Подскажите, возможно ли это реализовать.

Процедура подробно описана в Codex в разделе Перенос корневой установки в отдельную директорию.
Вы неверно понимаете момент об изменении URL-адресов, и да, терминология действительно неудачная. Изменятся только URL-адреса, основанные на "WP address". По сути, это относится к ядру WordPress, в основном к области администрирования.
Все URL-адреса контента основаны на "Site address", и после выполнения этой процедуры они по-прежнему будут указывать на корень вашего сайта.
Если вы хотите сохранить загрузки на месте, это можно сделать, оставив wp-content
в корне (отделив его от папки ядра) и настроив конфигурацию соответствующим образом. См. Перемещение папки wp-content.

Вот как это делается:
- Переместите файлы
wp-*
,index.php
,.htaccess
в новую папкуwordpress
Отредактируйте
wordpress/.htaccess
:- Найдите строку:
RewriteRule . /index.php [L]
- Измените её на:
RewriteRule . /wordpress/index.php [L]
- Найдите строку:
Создайте новый файл в
/path/to/www
с именем.htaccess
и добавьте следующее:
RewriteEngine on RewriteRule ^$ https://www.example.com/ [L] <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^/wordpress/index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /wordpress/$1 [L] </IfModule>

Метод переноса файлов WordPress в другую папку (директорию) без изменения конфигурации WordPress, то есть полностью прозрачно для WordPress:
- создайте директорию, в которую будет перенесена установка WordPress, например, "sitedir"
- переместите установку WordPress, включая файл
.htaccess
, в только что созданную директорию - отредактируйте файл
.htaccess
в корневой директории сайта (скорее всего public_html) и вставьте следующие строки:
RewriteEngine On RewriteBase / # редирект на ./sitedir/ RewriteCond %{http_host} ^example\.com$ RewriteCond %{request_uri} !^/sitedir(/.*)$ RewriteRule ^(.*)$ /sitedir/$1 [L,QSA] # дополнительно, редирект с www.example.com на example.com RewriteCond %{http_host} ^www\.example\.com [NC] RewriteRule ^(.*) http://example.com/$1 [R=301,L]
Замените "example.com" на ваш домен и "sitedir" на имя папки, в которую будет помещен WordPress.
