Um einen Angreifer den Zugriff auf die Login-Seite  zu erschweren kann über den Apache-Server eine .htaccess Anweisung erstellt werden.
Wordpress leitet /admin und /login auf /admin-login.php um. Somit muss nur der Zugriff auf diese PHP-Seite begrenzt werden.
Diese Zugriffsbegrenzung auf Apache-Ebene löst die eigentliche Anmeldung in Wordpress nicht ab.
Es kann also die selbe Anmeldung Benutzername/Passwort oder eine 2. Kombination verwendet werden.

Hierfür benötigt es 2 Dateien. Die .htaccess ist schon vorhanden. Als 2. muss noch eine .htpasswd erstellt werden mit dem Benutzername und Passwort

1.) Vorarbeit
Als erstes wird der absolute Pfad zur Wordpressinstallation auf dem Server benötigt. Wordpress ist dabei keine Hilfe. Ein FTP-Programm ist mal vorausgesetzt ;-)
Einfach eine Datei z.B. dir.php erstellen und mit einem Editor öffnen und folgendes Eingeben.

<?php
echo __DIR__;
?>

Die Datei in die Wordpress-Installation hochladen und über den Browser aufrufen
z.B: https://bsp-homepage.de/dir.php (Wordpress wurde ins Web-Basisverzeichnis installiert)
      https://bsp-homepage.de/wordpress/dir.php (In einen Unterordner)

Angezeigt wird dann so etwas ähnliches:
Die meisten Hoster setzen nach www die Kundennr. ein
/var/www/[KundenNr]/html      bzw.    /var/www/[KundenNr]/html/wordpress
Dieser Pfad wird später in die .htaccess-Datei eingetragen für den Verweis auf die .htpasswd

2.) Passwort-Datei erstellen
Hierfür kann einfach einen Online Passwort-Generator verwendet werden.  z.B. htpasswdgenerator.de oder redim.de Das erzeugte Passwort hat dann in etwa folgendes Aussehen:
Benutzer: klaus
Passwort: klein
Ergibt den Eintrag für die .htpasswd:

  klaus:$apr1$t3iyb10q$7/mp1fTeqSwM.TMnfyjnk1

Eine neue Datei erzeugen und die Zeichenfolge einfügen,  speichern und in den Wordpress-Ordner hochladen. 


3.) .htaccess anpassen
Die Datei am einfachsten per FTP herunterladen und mit einem Editor öffnen.
Dann folgendes an Anfang in die Datei einfügen.
Hinweis: in diesem Bsp. liegt die Wordpress-Installation im Unterordner /wordpress Liegt die Installation wie scho noben erwähnt im Basisorder einfach /wordpress löschen

<IfModule mod_auth.c>
  SetEnvIf Request_URI "^/wordpress/wp-login\.php$" ADMIN_INDEX
  SuthName "Adminbereich"
  SuthType Basic
  AuthUserFile /var/www/[KundenNr]/html/wordpress/.htpasswd
  <Limit GET POST>
    Require valid-user
  </Limit>
  Satisfy any
  Order   allow,deny
  Allow from all
  Deny from env=ADMIN_INDEX
</IfModule>

# BEGIN WordPress
# Die Anweisungen (Zeilen) zwischen „BEGIN WordPress“ und „END WordPress“ sind
# dynamisch generiert und sollten nur über WordPress-Filter geändert werden.
# Alle Änderungen an den Anweisungen zwischen diesen Markierungen werden überschrieben.

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]

# END WordPress