WordPress · 10 min · publié le 22 janvier 2025

wp-admin redirige ailleurs : trois causes, un ordre

Trois causes, un ordre : règle `.htaccess`, malware dans `wp-login.php`, option `siteurl` / `home` en base. On vérifie les trois. Réinstaller `wp-admin` sans ouvrir la base laisse la troisième — et vous tournez en rond.

Réponse directe

Règle .htaccess, malware dans wp-login.php, ou option siteurl en base. On vérifie les trois. Réinstaller wp-admin sans la base laisse la troisième.

wp-admin redirige wp-login redirection admin wordpress autre site

Reproduire : URL exacte et appareil

`/wp-admin/` et `/wp-login.php` ne sont pas toujours le même chemin. Un redirect peut ne frapper que le login, ou seulement le mobile, ou seulement hors cookie. Navigation privée, 4G. Notez l'URL d'arrivée (casino, page blanche, autre WP).

Si l'admin « marche chez vous » : cookie, IP whitelist d'un plugin sécu, ou cloaking. Inspection ne voit pas wp-admin, mais un test curl sans cookie, si.

Trois causes dans cet ordre : `.htaccess` (racine, wp-admin, uploads), `wp-login.php` vs zip, `siteurl`/`home` en base. Réinstaller wp-admin sans la troisième, c'est le cercle que nous voyons chaque semaine. Reproduisez en privé et en 4G : un redirect mobile-only ou hors cookie passe inaperçu sur le poste du gérant. Ne videz pas `.htaccess` : vous perdez les permaliens et vous croyez empirer le hack.

Notez si `/wp-admin/` et `/wp-login.php` se comportent pareil. Hide login, siteurl et .htaccess ne les traitent pas de la même façon. Un 404 sur wp-admin et un 302 sur wp-login, ce n'est pas « une » redirection : ce sont deux règles. Reproduisez les deux avant d'ouvrir le premier fichier.

Le .htaccess avant le cœur

Ouvrez `.htaccess` à la racine. `RewriteRule` vers un domaine tiers, `RewriteCond` User-Agent, `ErrorDocument`. Isolez les lignes ajoutées. Ne videz pas le fichier : permaliens perdus, site en 404, vous croyez empirer le hack.

Des `.htaccess` dans `wp-admin/` et `wp-content/` aussi. Un dans `uploads` qui redirige. Copiez avant édition.

Des `.htaccess` dans `wp-admin/` et `wp-content/` redirigent aussi. Copiez avant édition. Une `ErrorDocument 404` vers un générateur transforme vos 404 en 200 spam : autre symptôme, même famille de fichier.

wp-login.php et le zip

Comparez `wp-login.php` au zip de votre version. Une ligne `header('Location` en tête. Remplacez le fichier si le cœur est comparable. Réinstaller tout `wp-admin` aide pour les PHP du dossier — pas pour la base.

Une copie `wp-login.php` ailleurs (`wp-content/wp-login.php`) que les bots et vous-même pouvez frapper. Cherchez-la.

siteurl et home

Dans `wp_options`, `siteurl` et `home` doivent être votre HTTPS. Un domaine tiers : WordPress construit tous les liens admin vers ailleurs. Correction : phpMyAdmin / WP-CLI `option update`, ou `define('WP_HOME'` / `WP_SITEURL` temporaires dans `wp-config.php` le temps de rentrer.

Des plugins « change URL » mal finis laissent une option sérialisée pourrie. Sauvegardez la table avant.

WP-CLI `wp option get siteurl` / `home` si l'admin est inaccessible. Les `define('WP_HOME'` temporaires dans wp-config servent à rentrer, pas de rustine définitive. Sauvegardez `wp_options` avant une passe SQL : une sérialisation cassée met le site KO.

Les options siteurl/home parfois seulement dans un blog multisite (`wp_4_options`). Le site principal va bien, le sous-site non. Vérifiez le préfixe. WP-CLI `--url=` pour le bon host.

Réinstaller wp-admin sans ça, c'est le cercle. On le voit toutes les semaines.

Plugins de « hide login »

WPS Hide Login, iThemes, etc. Après un hack, le slug a pu changer, ou le plugin redirige mal. Désactivez via FTP (rename du dossier), reconnectez via `/wp-login.php`, puis décidez si vous le remettez. Ce n'est pas une priorité de sécurité réelle. iThemes.

Rename du dossier plugin via FTP pour retrouver `/wp-login.php`. Décidez plus tard si vous remettez un hide login — priorité basse, ce n'est pas ça qui a ouvert la porte. iThemes.

DNS et HTTPS

Un CNAME vers un parking, un certificat qui force un autre vhost, un addon domain. Moins fréquent qu'htaccess + options, à vérifier si les trois premiers sont propres. Cloudflare « always HTTPS » + règle de redirect page : lisez les règles.

L'ordre qui évite de tout casser

Copie. `.htaccess`. `wp-login.php` / zip cœur. `siteurl`/`home`. Plugins hide. Puis chasse habituelle (users, mu-plugins). Par où commencer.

Après : sessions et clés

Régénérez AUTH_KEY etc. Tout le monde se reconnecte. L'attaquant aussi, s'il a encore le FTP. Panel d'abord. wp-config.

WordPress piraté, créer un espace.

Ensuite users, mu-plugins, clés AUTH (tout le monde se reconnecte, l'attaquant aussi s'il a encore le FTP : panel d'abord). WordPress piraté, créer un espace.

DNS, Cloudflare, et le front qui marche encore

Un CNAME vers un parking, un certificat qui force un autre vhost, une règle Cloudflare « page redirect » : moins fréquent qu'htaccess + options, à vérifier si les trois premiers sont propres. Always HTTPS + une règle qui accroche wp-login : lisez les règles du compte Cloudflare, pas seulement le FTP.

Elementor / le front marchent, seul l'admin redirige : typique siteurl, hide login ou wp-login.php. Une page « you have been hacked » à la place du login : défacement ciblé, pas seulement cosmétique. Copiez, puis les trois causes + users.

Si vous êtes renvoyé vers un autre de vos sites : siteurl copié-collé ou infection latérale. Multisite. Créer un espace.

Si les trois causes sont propres

Alors DNS / vhost / Cloudflare / un mu-plugin qui `wp_redirect` seulement pour `/wp-admin`. Grepez `wp_redirect` et `Location:` hors du cœur. Un cookie de hide login orphelin. Un certificat qui sert un autre site du panel. Ça existe, c'est plus rare : ne commencez pas par là, vous perdrez la soirée.

Réinstaller wp-admin sans la base reste le cercle. wp-config si un define WP_HOME pointe ailleurs. Créer un espace.

Questions fréquentes

Je suis renvoyé vers un autre de mes sites. Même dossier ?

+
Souvent `siteurl` copié-collé, ou un multisite mal câblé. Vérifiez aussi les sites du panel : infection latérale. Multisite. Souvent siteurl copié-collé ou multisite. Vérifiez les autres vhosts du panel.

wp-admin est une 404. C'est une redirection ?

+
Parfois un hide login, parfois un .htaccess qui interdit wp-admin, parfois des fichiers cœur absents. Pas toujours un domaine tiers. Parfois hide login, parfois Deny, parfois fichiers cœur absents.

Je peux forcer l'admin via /wp-admin/index.php ?

+
Si le rewrite casse, parfois. Ce n'est pas un fix. Trouvez la règle.

Elementor / le front marchent, seul l'admin redirige.

+
Typique siteurl ou hide login ou wp-login.php. Le front lit d'autres templates. Typique siteurl, hide login ou wp-login.php. Le front lit d'autres templates.

Une page « you have been hacked » s'affiche à la place du login.

+
Défacement ciblé. Copiez, puis les trois causes + users. Ce n'est pas « que » cosmétique.
À lire ensuite
wp-config compromis Par où commencer iThemes / Solid WordPress piraté Guide WordPress Déclarer mon site