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

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.

Související články

Zranitelnost pluginu Duplicator

23.02.2020 [ Pavel Urbánek ]

Zajímáte-li o  aktuální dění kolem WordPress a jeho bezpečnost, určitě jste zaznamenali bezpečnostní problém u oblíbeného pluginu Duplicator , který se používá ke klonování webů a pro migrace. Duplikator je plugin...

PF 2020

23.12.2019 [ Pavel Urbánek ]

Letošní rok u nás byl velmi nabitý a proběhlo mnoho příjemných změn a posunů našeho hostingu, které budete moci ocenit v novém roce. Celý rok jste pracovali, tak si užijte...

Další novinky