Techbear
Сайт для тех, кто хочет использовать Вордпресс по максимуму, но не хочет разбираться в коде.
Вордпресс — система с открытым исходным кодом, поэтому стандартная структура файлов и папок является публично доступной информацией, и кто угодно, включая хакеров, точно знает, откуда можно начать атаку на сайт.
Чтобы противостоять таким атакам, можно реорганизовать стандартную файловую структуру Вордпресс сайта. В этой статье вы узнаете 2 способа изменить структуру файлов и папок одиночного сайта и мультисайт установки Вордпресс.
Предостережение от Вордпресс: Делайте это на свой собственный риск. Для большинства сайтов не рекомендуется переносить Вордпресс в другую папку, если только у вас нет веской причины для этого, и вы хорошо понимаете, что вы делаете.
Все инструкции на этой странице взяты из разных мест Кодекса Вордпресс и сведены в одну статью.
Изменение структуры Вордпресс — важная часть защиты сайта, поэтому сделать эти изменения желательно. Для начала вы можете попробовать на тестовом или локальном сайте. Или сделайте бэкап.
Вы будете менять расположение файлов и папок, поэтому если что-то пойдет не так, вы сможете восстановить сайт из бэкапа.
В случае, если после изменения структуры Вордпресс файлы сайта не смогут установить связь с базой данных, во фронт-энде сайта будут показаны ошибки с информацией, которую не должны видеть посторонние. Эту информацию лучше скрыть, вместо фронт-энда ее можно сохранять в лог-файл.
Содержание:
1. Перенос сайта без изменения URL
2. Перенос сайта с изменением URL
3. Перемещение специальных папок Вордпресс
Обычно перенос файлов сайта из корневой директории в подпапку означает, что адрес сайта изменится с http://ваш-сайт.ru
на адрес этой папки, например, http://ваш-сайт.ru/abcd-xyz/
, но можно сделать так, чтобы адрес сайта остался без изменений, но файлы находились в новой папке.
Создайте новую папку в корневой папке сайта. Это можно сделать в файловом менеджере на хостинг панели или через FTP.
Дайте новой папке какое-нибудь уникальное имя, которое непросто угадать. Не называйте папку «wordpress», «wp-core» или что-нибудь подобное. Подберите имя, которое для вас что-нибудь значит, но непросто подобрать хакерам.
Перенесите ВСЕ файлы и папки сайта в только что созданную папку.
По URL вашего сайта хакер будет предполагать, что файлы и папки сайта находятся в корневой директории, но при попытке обратиться к этим файлам он поймет, что их там нет. Это увеличивает шансы файлов остаться нетронутыми.
Создайте файл .htaccess в корневой папке сайта, и добавьте в него этот код:
В строках 3 и 8 замените my-site.ru
на ваш домен. В строках 4, 7 и 9 замените 1234-567
на название новой папки.
Все готово. Сохраните и загрузите на сайт. Проверьте, что сайт работает.
Реклама
Простой способ выгодно купить полис
В этом способе адрес сайта изменится с my-site.ru
на my-site.ru/abcd-xyz
Создайте новую папку с произвольным именем в корневой папке сайта. Перед тем, как вы переместите в нее файлы сайта, в настройках сайта нужно изменить адрес, который говорит Вордпресс где расположены файлы сайта.
Для одиночной установки Вордпресс зайдите в Настройки — Общие, добавьте название папки, которую вы только что создали после слеша. В этом примере это /abcd-xyz
. Не добавляйте слеш в конце нового адреса.
Нажмите Сохранить изменения внизу страницы. После этого сайт должен стать недоступен, так и должно быть.
Если у вас Мультисайт установка, то вы не сможете изменить адрес Вордпресс из меню суперадмина. Вместо этого надо добавить несколько строк кода в файл wp-config.php.
Вы можете сделать то же самое и для одиночной установки Вордпресс, но в этом случае вы не сможете изменить адрес Вордпресс в меню Настройки — Общие.
Откройте wp-config.php и добавьте эти строки
ближе к концу файла, но перед строкой
Замените abcd-xyz
на название своей папки. Если у вас не установлен SSL сертификат, то замените https
в обеих строках на http
.
Сохраните изменения. Сайт должен быть недоступен. Теперь надо переместить файлы.
Перенесите все файлы и папки из корневой директории в новую созданную папку, в этом примере она называется /abcd-xyz
.
Зайдите внутрь этой папки и скопируйте файлы .htaccess и index.php обратно в корневую директорию, откуда вы их только что перенесли. В итоге файлы .htaccess и index.php должны находиться и в корневой папке сайта и в только что созданной папке /abcd-xyz
.
Файл .htaccess может быть невидим, поэтому в настройках файлового менеджера на хостинге или в настройках FTP клиента зайдите в Настройки и поставьте галочку Показывать скрытые файлы и папки.
Если после того, как вы включили опцию Показывать скрытые файлы в корневой папке сайта стали видимыми другие скрытые файлы или папки, перенесите их в новую созданную папку /abcd-xyz
.
Чтобы сайт начал работать с файлами, находящимися по новому адресу, нужно сделать изменения в файле index.php. Откройте index.php, который находится в корневой папке сайта и найдите эти строки, они находятся ближе к концу файла:
Добавьте адрес новой папки перед /wp-blog-header.php
, так что должно получиться:
Замените /abcd-xyz
на название вашей папки. Сохраните изменения, загрузите на сервер.
Зайдите в админку сайта. Теперь URL адрес страницы авторизации должен включать название новой папки.
В этом примере папка называется /abcd-xyz
, тогда адрес входа изменится на http://мой-сайт.ru/abcd-xyz/wp-login.php
или http://мой-сайт.ru/abcd-xyz/wp-admin.
Зайдите в Настройки — Постоянные ссылки и нажмите Сохранить изменения. Это автоматически обновит файл .htaccess и все посты и страницы будут доступны посетителям.
Вы можете сделать еще несколько изменений в структуре папок сайта. Для этого понадобится добавить несколько строк кода в файл wp-config.php для каждого следующего шага.
Существует 2 правила, которые нужно соблюдать:
С этими папками можно делать изменения при помощи кода в wp-config.php:
Когда будете делать изменения с папками wp-content и plugins, добавляйте код в wp-config.php до строки
с папкой uploads — после этой строки.
Вы можете создать новую папку в корневой папке сайта и переместить в нее папку wp-content. После этого откройте wp-config.php и добавьте этот код:
Замените newfolder
на название новой папки. Замените мой-сайт.ru
на название вашего сайта, и https
на http
, если у вас не установлен SSL сертификат.
Если вы хотите перенести wp-content в папку, которая находится не в корневой папке сайта, то замените /newfolder/
на ваш адрес.
Создайте новую папку, перенесите в нее папку plugins. Добавьте этот код в wp-config.php:
Замените add-folder
на название новой папки. Замените мой-сайт.ru
на название вашего сайта, и https
на http
, если у вас не установлен SSL сертификат.
Если у вас появилась проблема совместимости с плагинами, добавьте эту строку:
Замените add-folder
на название новой папки.
Чтобы переименовать папку uploads, откройте wp-config.php, спуститесь в самый низ файла, ниже строк «Это все, дальше не редактируем», и найдите эти 2 строки:
Над строкой require_once(ABSPATH . 'wp-settings.php');
добавьте
Папка Uploads всегда относительна к ABSPATH, поэтому слеш перед wp-content/media
не требуется. Замените media
на новое название папки uploads. В итоге должно получиться:
Сохраните wp-config.php.
Если вы решили изменить название папки uploads, то вам нужно изменить текущее название папки на сервере.
Зайдите на сервер по FTP или через хостинг-панель и измените название папки uploads на то имя, которые вы дали этой папке в файле wp-config.php.
Если вы все сделали правильно, то сайт должен корректно работать по своему обычному адресу без добавления суб-директории в URL, а посетители и хакеры не смогут определить, что файлы ядра Вордпресс больше не находятся на своем обычном месте в корневой папке сайта.
Если вы хотите, чтобы в адресе сайта добавилась подпапка установки сайта, используйте способ 2.
Для проверки информации читайте статью Размещаем WordPress в отдельном каталоге (рус.) в документации Вордпресс.
Если по какой-то причине у вас не получилось изменить стандартную структуру Вордпресс, как минимум запретите исполнение PHP файлов в папке Uploads.
Читайте также:
Сайт для тех, кто хочет использовать Вордпресс по максимуму, но не хочет разбираться в коде.
Здравствуйте. Хорошая статья. Только мне не совсем понятно, зачем переносить сайт с изменением адреса?
Также, как я понял, в случае переноса сайта без изменения адреса, например: в папку «core», адреса постов будут такого вида: https://example.com/core/post1?
Добрый день. Делаю перенос без изменения url, всё работает, кроме wp-admin (выдает 403). Не подскажете в чем может быть проблема?
Проблема может быть в файле .htaccess или в неправильных разрешениях файлов и папок.
Попробуйте дать только что созданной папке права 755.
Еще проблема может быть в том, что на вашем хостинге указана одна папка для сайта, но после переноса сайт находится в другой папке.
Права указаны правильно. Структура на хостинге выглядит так — www/mysite.ru/www/файлы вордпресса. Изначально загружалась только главная, потом добавила .htaccess из статьи в корень, стали грузиться вложенные страницы и ассеты, wp-login.php тоже работает. Не работает только админка.
Дмитрий, зачем же вы комментарии удаляете?
В моем комментарии не было ни оскорблений, ни каких-либо других негативных действий.
Я показал вам на не стыковки в записях, а вы комментарий подчистили.
Нечего ответить?
Зачем вы тогда блог завели, если вам люди указывают на недочеты, а вы вместо того, чтобы как взрослый человек конструктивно ответить, удаляете «неугодные» вам комментарии. Судя по соцсетям и указанным данным, вам уже за 30, а поведение, как у 15 летнего пацана.
Сначала мне ваш блог очень понравился. Все грамотно сделано и с точки и зрения SEO, и с точки зрения самого контента. Хотел было в закладки добавить. Но с таким отношением к пользователям… в топку…
Всего вам…
Нет, не удаляю.
Спасибо за то, что помогаете делать контент лучше.
Но иногда нет возможности быстро отвечать на комментарии.
Не слушайте подобных балаболов!
Благо, что сайт на стартапе! Одно жалко, что на настройку, и поиск всех данных много времени ушло…
Короче пришлось сносить CMS!
Проверил еще раз, все работает.
Обратите внимание на http / https.
Александр прав, не работает.
Причем автор сам себе противоречит. И вот почему:
В этой статье он пишет про папку Uploads одно: https://techbear.ru/kak-izmenit-strukturu-faylov-i-papok-v-wordpress/#uploads
А в другой статье совершенно другое: https://techbear.ru/rukovodstvo-po-wp-config-php/#move-folders
Так где же истина?!
Если сравнивать материалы по изменению структуры сайта в двух указанных статьях, то получается совершенно разная информация и разные результаты.
Лично опробовал и тот способ и этот способ. Не все так гладко и правильно, как описывает автор.
Да, вы правы, есть ошибка.
В разделе Изменение адреса файлов сайта адрес новой папки нужно добавлять не к Адресу сайта, а к Адресу WordPress.
Должно быть так:
В тексте поправил.
Спасибо, что указали на ошибку.
По поводу Uploads:
В статье Руководство по wp-config.php говорится скорее о переименовании папок wp-content, plugins и uploads.
В статье Как изменить файловую структуру Вордпресс говорится скорее о перемещении этих папок без переименования в новые папки.
Хотя это почти одно и то же, и делается теми же командами, могла появиться разница.
Постарался исправить недочеты.
Спасибо.