Изменить 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'); 

Поэтому у меня есть каталог содержимого, содержащий мои плагины и темы. И тогда у меня есть каталог wordpress, который содержит основные файлы WP, минус папку wp-content.

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

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

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

Вот статья с сайта 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] 

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

 // 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'); 

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

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

Надеюсь, эта информация полезна 🙂

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

Это очень полезная тема. Она дала мне тему для размышлений. Но я сделал небольшую коррекцию в функции, и это моя версия 🙂

 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.