it-swarm.com.ru

Изменить URL администратора Wordpress

Я немного изменил структуру каталогов Wordpress. Вот что у меня есть:

define('WP_SITEURL', 'http://' . $_SERVER['SERVER_NAME'] . '/wordpress');
define('WP_HOME',    'http://' . $_SERVER['SERVER_NAME']);
define('WP_CONTENT_DIR', dirname(__FILE__) . '/content');
define('WP_CONTENT_URL', 'http://' . $_SERVER['SERVER_NAME'] . '/content');

Так что у меня есть каталог content , в котором находятся мои плагины и темы. А затем у меня есть каталог wordpress , который содержит основные файлы WP, за исключением папки wp-content.

С этой новой структурой мне нужно получить доступ к WP бэкенду с этим URL: http://site.dev/wordpress/wp-admin 

Есть ли способ, которым я могу изменить это, чтобы я мог просто получить к нему доступ так: http://site.dev/wp-admin

Я не хочу, чтобы WordPress был в URL. Будет ли это обновление htaccess, которое мне нужно сделать, или есть настройка, которую я могу использовать в своем файле wp-config.php?

10
Drew

Вот статья с сайта WordPress.

http://wordpress.org/support/topic/how-to-change-the-admin-url-or-wp-admin-to-secure-login

  1. Добавить константу в wp-config.php 

    define('WP_ADMIN_DIR', 'secret-folder');  
    define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);  
    
  2. Добавьте фильтр ниже в functions.php

    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);  
    }
    
  3. Добавьте строку ниже в файл .htaccess

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

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

// Simple Query String Login page protection
function example_simple_query_string_protection_for_login_page() {

$QS = '?mySecretString=foobar';
$theRequest = 'http://' . $_SERVER['SERVER_NAME'] . '/' . 'wp-login.php' . '?'. $_SERVER['QUERY_STRING'];

// these are for testing
// echo $theRequest . '<br>';
// echo site_url('/wp-login.php').$QS.'<br>';   

    if ( site_url('/wp-login.php').$QS == $theRequest ) {
        echo 'Query string matches';
    } else {
        header( 'Location: http://' . $_SERVER['SERVER_NAME'] . '/' );
    }
}
add_action('login_head', 'example_simple_query_string_protection_for_login_page');
3
Abu fateh

Это очень полезная тема. Я сделал небольшое исправление в функции, и это моя версия:

add_filter('site_url',  'wpadmin_filter', 10, 3);

 function wpadmin_filter( $url, $path, $orig_scheme ) {
    $request_url = $_SERVER['REQUEST_URI'];

    $check_wp_admin = stristr($request_url, 'wp-admin');
    if($check_wp_admin){
        wp_redirect( home_url( '404' ), 302 );
        exit();
    }

    $old  = array( "/(wp-admin)/");
    $admin_dir = WP_ADMIN_DIR;
    $new  = array($admin_dir);
    return preg_replace( $old, $new, $url, 1);
 }

В основном для перенаправления wp-admin.

И самая важная часть:

add_rewrite_rule( '^' . 'backend/(.*)','wp-admin/$1?%{QUERY_STRING}' );

Для обновления правила .htaccess.

2
OneByte

Все, что я сделал, это переместил папку /wp-admin (внутри public_html/wordpress) в public_html, и я дважды проверил, чтобы убедиться, что она будет работать, переименовав мою папку WordPress (я использовал wordpress_test, вы можете использовать все что угодно) и зашел на мой сайт example.com/wp-admin - это работало так же, как если бы я пошел на example.com/wordpress/wp-admin

Единственное, что довольно сложно, - это заменить wp-admin на что-то еще, потому что WP закодировал wp-admin во многих файлах. Простое изменение имени вызывает php и другие ошибки. Простой плагин, который я найду, легко это исправит. 

Примечание : Мне не нужно было писать код для этого. Мне пришлось немного изменить код для wp-admin, потому что плагин не делал то, что я хотел.

1
Nicholas

Есть еще один способ обеспечить лучшую тактику для вашего защищенного wp-администратора.

Так же, как и собственное имя wp-admin, как, возможно, «worksersneeded /»

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

Вам нужно будет загрузить инструмент под названием Notepad ++: https://notepad-plus-plus.org/download/

Если вы не будете много работать с каждым из файлов в каталоге.

После этого вам нужно извлечь WordPress в папку.

Затем отредактируйте все файлы в каталоге при поиске после wp-admin . Затем замените все файлы на ваше имя: «workingneeded» или ваше собственное имя.

Как в блокноте введите «поиск в файлах», чтобы «найти что»: wp-admin /

А в "заменить на"

Затем замените все файлы.

Вам также необходимо поместить в wp-config.php эту строку, чтобы отслеживать все проблемы:

ini_set('log_errors',TRUE);
ini_set('error_reporting', E_ALL);
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');

После того как вы перезаписали большую часть в каталоге WordPress, и у вашего wp-admin теперь есть имя «workingneeded», вы, скорее всего, столкнетесь с небольшими проблемами с некоторыми из ваших плагинов или тем WordPress.

Вот почему вам нужно будет зарегистрировать их в файле error_log.txt.

После нахождения ошибок в файле. Скорее всего, вам нужно будет отредактировать файл .php, который все еще пытается подключиться к wp-admin. Таким образом, вы можете заменить информацию о файле wp-admin в вашу папку администратора.

Вы можете снова загрузить свои плагины и заменить ту же процедуру, что и выше, на notepad ++. Таким образом, вы можете сделать все плагины доступными с новым именем папки.

Затем загрузите папку каждого плагина в каталог wp-content с помощью плагина wp file manager.

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

Это было сделано с версией WordPress 4.9.8, а также с самой новой 5.0.3

С 5.0.3 вы получаете больше ошибок в файл error_log.txt. Неизвестно почему.

0
Dealazer