Novinka: Viděli jste naší novou administraci pro správu managed serveru wpcloud.cz ?

Jak změnit URL pro přihlášení do administrace bez pluginu

12.09.2018
Pavel Urbánek

Výchozí adresa pro přihlášení do administrace WordPressu je standardně ve tvaru httpS://mojedomena.tld/wp-admin/ nebo wp-login.php.

Někdy se může hodit změnit adresu pro přihlašování do administrace WordPressu. Jedním z hlavních důvodů jsou útoky od robotů (ty na našem hostingu filtrujeme) nebo customizace pro zákazníky.
Změna se dá udělat několika způsoby. Buď použít plugin či přidat potřebné funkce pomocí editoru nebo FTPs/sFTP přístupu na server.

Současně je třeba zakázat původní možnost přihlašování pomocí tvaru /wp-admin/ a wp-login.php.

Změníme adresu do administrace např. na https://mojedomena.tld/spravawp/  (změnu na jiný tvar provedete jednoduchou záměnou).

1.) Do souboru  .htaccess přidáme kód s výslednou podobou:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# přidat následující dva řádky:
  RewriteRule ^spravawp/(.*) wp-admin/$1?%{QUERY_STRING} [L]
  RewriteRule ^connect$ wp-login.php
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

2.) Do souboru wp-config.php přidáme kód:

define( 'WP_ADMIN_DIR','spravawp');
define('ADMIN_COOKIE_PATH','/');

3.) A do souboru function.php,který najdete v wp-content/themes/NAZEVSABLONY/ přidáme kód:

if (strpos($_SERVER['REQUEST_URI'], 'wp-admin') !== false || strpos($_SERVER['REQUEST_URI'], 'wp-login') !== false || strpos($_SERVER['REQUEST_URI'], 'admin') !== false || strpos($_SERVER['REQUEST_URI'], 'login') !== false) {
  header("HTTP/1.1 301 Moved Permanently");
  header('Location: /'); die();    // přesměrujeme na web
  # wp_safe_redirect( '404.php' ); // nebo zobrazíme chybovou stránku 404
}
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);
}

add_action('login_form','redirect_wp_admin');
function redirect_wp_admin(){
  $redirect_to = $_SERVER['REQUEST_URI'];
  if(count($_REQUEST)> 0 && array_key_exists('redirect_to', $_REQUEST)) {
  $redirect_to = $_REQUEST['redirect_to'];
  }
}

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

function wplogin_filter( $url, $path, $orig_scheme ) {
  $old = array( "/(wp-login\.php)/");
  $new = array( "connect");
  return preg_replace( $old, $new, $url, 1);
}

A hotovo. Kód si můžete přizpůsobit dle libosti :).

A nyní se přihlásíme pod adresou https://mojedomena.tld/spravawp/ (nezapomeňte vložit lomítko na konec adresy).

I jednoduché věci se dají řešit bez pluginu.