it-swarm.xyz

Можно ли переименовать папку wp-admin?

Можно ли переименовать папку wp-admin?

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

Если я использую произвольное имя папки, это сделает его немного более безопасным, безопасность от неясности и все такое.

69
Adam Dempsey

К сожалению, в настоящее время это невозможно, и, похоже, нет желания рассматривать его как модификацию, как вы можете видеть по этой недавней ветке в списке wp-хакеров и этой заявке на trac .

Если вы действительно хотите увидеть это снова, я бы предложил:

  1. Представьте свой случай на wp-хакерах но будьте заранее предупреждены, что ваш вариант использования лучше использовать, а не "безопасность через неизвестность", иначе он будет сбит, как указано выше.

  2. Представьте свой аргумент в билет трассировки с такими же оговорками.

  3. Более того, загрузите патч в трек, который включает желаемую функциональность. Гораздо сложнее сказать "нет", когда работа уже выполнена (но, конечно, они предпочитают говорить "нет" гораздо чаще, чем "да", так что будьте предупреждены).

38
MikeSchinkel

Нет, вы не можете переименовать папку. Путь жестко задан в нескольких местах по всему исходному тексту WordPress.

Безопасность через неизвестность в любом случае не является безопасностью.

11
Viper007Bond

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

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

В следующем коде я использую панель инструментов в качестве имени моего нового wp-admin. Измените панель управления в приведенном ниже коде на имя нового администратора.

Сначала вам нужно сообщить WordPress, что вы хотите изменить адрес администратора.

В строке 2558 wp-includes/link-template.php - это код, который определяет URL-адрес администратора.

Используя фильтр admin_url, вы можете успешно изменить адрес администратора с помощью следующей функции:

function my_custom_admin_url($path) { 
    return str_replace('wp-admin', 'dashboard', $path); 
}
add_filter('admin_url', 'my_custom_admin_url');

Вы можете проверить, какой у вас новый URL, выполнив это:

function whats_my_admin_url() {
    $url = admin_url();
    echo '<pre><code>'; print_r( $url ); echo '</code></pre>';
    }
add_action( 'admin_notices', 'whats_my_admin_url' );

Тем не менее, если вы заметите, нажимая через администратора, что не все работает, и некоторые ссылки могут дать вам 404 не найден или что-то подобное.

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

#CUSTOM ADMIN URL REWRITE
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dashboard[^/]*$ dashboard/ [R=301,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^dashboard(.*)$ wp-admin$1? [QSA,L,NE]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/?$ / [NE,R=404,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/(.*)$ dashboard/$1 [QSA,R=301,L,NE]
</IfModule>
#CUSTOM ADMIN URL REWRITE

Теперь я не эксперт, когда дело доходит до редактирования .htaccess, поэтому некоторые из них могут не понадобиться. Тем не менее, я никогда не находил, что это не работает.

Вот и все. Создайте файл и поместите его в папку плагинов или папку mu-plugins. (не забудьте изменить каждый экземпляр панели мониторинга на предпочитаемый вами адрес администратора)

<?php
/**
 * Plugin Name: Change My Admin URL
 * Plugin URI: http://wordpress.stackexchange.com/questions/106/can-i-rename-the-wp-admin-folder
 * Description: Changes the admin url where wp-admin becomes dashboard (or whatever you change it to)
 * Version: 1.0
 * Author: Bryan Willis
 * Author URI: http://profiles.wordpress.org/codecandid
 * License: GPL2
 */

/* 

#CUSTOM ADMIN URL REWRITE FOR HTACCESS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dashboard[^/]*$ dashboard/ [R=301,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^dashboard(.*)$ wp-admin$1? [QSA,L,NE]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/?$ / [NE,R=404,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/(.*)$ dashboard/$1 [QSA,R=301,L,NE]
</IfModule>
#CUSTOM ADMIN URL REWRITE

*/

function my_custom_admin_url($path) { 
    return str_replace('wp-admin', 'dashboard', $path); 
}
add_filter('admin_url', 'my_custom_admin_url');

Вопросы?

У меня не было больше года, используя этот метод. Вы можете заметить, что wp-admin все равно будет работать, какой тип отстой, но это скорее предосторожность, чем все остальное. У меня были некоторые плохо написанные плагины, жестко запрограммированные в некоторых местах wp-admin, которые не загружались при попытке заблокировать или перенаправить wp-admin. Я уверен, что есть способ сделать это с помощью htaccess, но я не смог выяснить это. Кроме того, это никогда не проверялось на мультисайтах или чем-то подобном.

Обновление: альтернативный подход

Это очень похоже, но по некоторым причинам мой ответ выше не работал на каждом хосте, который я пробовал.

Добавить в .htaccess

RewriteRule ^admin/(.*) wp-admin/$1?%{QUERY_STRING} [L]

Создайте файл в папке mu-plugins с именем new-admin.php и добавьте его туда:

<?php
define('WP_ADMIN_DIR', 'admin');
defined('SITECOOKIEPATH') || define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('siteurl') . '/' ) );
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);

add_filter('site_url',  'wpadmin_filter', 10, 3);
 function wpadmin_filter( $url, $path, $orig_scheme ) {
  $old  = array( "/(wp-admin)/");
  $admin_dir = WP_ADMIN_DIR;
  $new  = array($admin_dir);
  return preg_replace( $old, $new, $url, 1);
}

Примечание: Этот подход, казалось, работал лучше на некоторых хостах, но все еще имел проблему с тем, чтобы не перенаправлять ссылки wp-admin на новый адрес администратора. Вот подход, который я попробовал ниже. Хотя это ниже не работает Я думаю, что это на правильном пути. Я не совсем уверен, какой крючок использовать. htaccess может быть лучшей альтернативой, но я продолжал получать петли перенаправления, когда пытался таким образом.

add_action('init', 'redirect_wp_admin_url_to_404');
function redirect_wp_admin_url_to_404(){
  $redirect_to = $_SERVER['REQUEST_URI'];
  if(count($_REQUEST)> 0 && array_key_exists('redirect_to', $_REQUEST)){
    $redirect_to = $_REQUEST['redirect_to'];
    $check_wp_admin = stristr($redirect_to, 'wp-admin');
    if($check_wp_admin){
      wp_safe_redirect( '404.php' );
    }
  }
}
11
Bryan Willis

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

URL сайта: http://my-blog.com

URL администратора: http://my-blog.com/7nxnkkugrdzm/wp-admin

Хотя это не дает вам полной свободы в изменении URL-адреса администратора, это означает, что вы можете префикс делать все что угодно. Это так же хорошо с точки зрения безопасности. Он также имеет преимущество, заключающееся в перемещении всех установочных файлов WordPress в место, неизвестное пользователям, поэтому оно должно быть частью любой стратегии защиты WordPress.

Из Кодекса WordPress: Предоставление WordPress собственного каталога

Также обратите внимание, что хотя эта схема безопасности называется Obscure URL, это не то же самое, что безопасность по неизвестности. Obscure URL - это абсолютно правильная схема безопасности, которая так же хороша, как и пароль, тогда как безопасность по неизвестности использует секретные непроверенные процедуры.

Однако применяются те же предостережения, что и для паролей: вызывайте пользовательскую папку примерно как 7nxnkkugrdzm, а не happy-snappy-admin. Кроме того, убедитесь, что ваши пользователи знают, что админка является секретом.

9
cmc

На самом деле есть очень хорошее руководство по этому вопросу здесь:

Как скрыть информацию WordPress из вашего исходного кода зеркало

Включает в себя, как переименовать wp-контент, переименовать wp-admin и удалить тег генератора из WordPress.

Это руководство изменит очевидное свидетельство или указание на него в вашем исходном коде, эффективно удаляя информацию WordPress с вашего сайта .

В нем объясняется, как изменить имя папки, URL-адрес входа wp-admin и убедиться, что login.php перенаправляет на основной сайт, чтобы люди могли перейти туда напрямую.

7
Graeme

Если вы хотите, чтобы пользователи уровня подписчика не видели каталог wp-admin, вы можете создавать автономные версии страниц входа в систему/регистрации и профиля/редактирования в своих собственных каталогах. Затем вы можете защитить вашу папку администратора с помощью htaccess или IP-ограничения. (Хотя, если вы сделаете это, вы должны сделать исключение для файла admin-ajax, так как некоторые плагины используют его для добавления функций AJAX).

Такой подход дает вам желаемую "неясность" (которая на самом деле мало что дает, но часто заставляет клиентов и менеджеров чувствовать себя лучше), а также добавляет реальной безопасности, ограничивая доступ администратора. Плюс, честно говоря, URL, который просто говорит "/ login", выглядит намного лучше, чем "wp-login.php".

Само собой разумеется, что это не делает ваш сайт пуленепробиваемым. Но это хорошее, базовое улучшение.

6
MathSmath

Один из способов заблокировать административную панель управления - использовать правила .htaccess. Просто добавьте файл .htaccess в корень каталога wp-admin. После добавления этого файла просто добавьте следующее правило, чтобы запретить все IP-адреса и разрешить только ваш IP:

http://wp.tutsplus.com/tutorials/10-steps-to-securing-your-wordpress-installation/

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
whitelist address
allow from <IP ADDRESS HERE>
</LIMIT>
2
Josh

Если вы хотите переименовать wp-admin с целью добавления дополнительного уровня безопасности к вашей установке WordPress, вы также можете попробовать Roots/Bedrock Boilerplate . Это может помочь изолировать веб-корень, чтобы ограничить доступ к не-веб-файлам. Он также может помочь в организации/защите всего ядра WordPress, поместив его в свой собственный подкаталог, например, переименование wp-content/в app /, а также в следующие дополнительные функции:

  • Управление зависимостями с помощью Composer
  • Простая настройка WordPress с файлами, специфичными для окружения
  • Переменные среды с Dotenv
  • Автозагрузчик для mu-plugins (используйте обычные плагины как mu-plugins)
  • Повышенная безопасность (разделение веб-корня и безопасных паролей с помощью wp-password-bcrypt)

Вы также можете проверить их GitHub Repo для более детального использования:

1
Carl Alberto

ЧТО О РАБОТАЮЩЕМ WP-ADMIN ИЗ IFRAME?

Создайте новую страницу в wp dashboard под названием "Admin". например: ваш домен/admin /

Вы можете сделать заявление с помощью header.phppage.php и/или footer.php, чтобы отключить ненужные элементы в шаблоне, используя:

<?php
if(!is_page('admin')): //if not the admin page.

//wrap code not needed or wanted.

else: ?>

<style type="text/css">
    .responsive-iframe {
    position: relative;
    padding-bottom: 56.25%; /*16:9*/
    height: 0;
    overflow: hidden;

    iframe {
        position: absolute;
        top:0;
        left: 0;
        width: 100%; //or 100vw
        height: 100%; //or 100vh
    }
}   
</style>

<div class="responsive-iframe">
<iframe seamless="seamless" scrolling="yes" src="http://yourdomain/wp-admin/" frameborder="0" allowfullscreen></iframe>
</div>

<?php 
endif;

Это не красиво, но, по крайней мере, до некоторой степени вы можете скрыть wp-admin от URL. Другой способ - возможно использовать переадресацию домена с включенной ссылкой URL.

0
samjco

Посмотрите на http://wordpress.org/extend/plugins/stealth-login/ это может вам помочь.

0
edelwater

Нет, невозможно переименовать папку wp-admin с любым недостатком кода или взломом htaccess,

В прошлом я делал то же самое для клиента, выполняя полный поиск по папке через Coda (редактор, которым я пользуюсь) для тега "wp-admin, wp-content ... и т.д.", И я удаляю "wp-" из файлы.

После этого вы сможете установить его, но:
Вы должны сделать то же самое с плагинами, которые хотите установить. Вы должны обновить ядро ​​вручную, очистив тег "wp-" от новых версий.

Во всех случаях, когда я не советую вам делать что-то подобное, оставьте это как есть и попробуйте реализовать страницу входа в систему/регистрации/профиля пользователя, чтобы предоставить вашим пользователям/клиентам лучший опыт.

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

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

Здесь вы можете увидеть пример и код о том, как создать страницу Frontend Post. Front-End Post представление

Также вы можете взглянуть на некоторые плагины Nice здесь которые делают то же самое с большей функциональностью.

0
Philip