Comment déplacer la page de connexion wp-admin vers un autre emplacement?
-
-
Vouspouvez égalementessayer ceplugin: http://wordpress.org/extend/plugins/ozh-simpler-login-url/You can also try this plugin: http://wordpress.org/extend/plugins/ozh-simpler-login-url/
- 0
- 2011-03-18
- wpmayor
-
Êtes-vousparvenu à une conclusion sur cette question?Qu'enest-il des réponses lesplus votées?Did you come to a conclusion about this Question? What about the top voted Answers?
- 2
- 2012-07-21
- brasofilo
-
12 réponses
- votes
-
- 2011-03-18
Vouspouvez désactiver lapage wp-login depuis vosfonctionsen vous connectant à login_head:
add_action( 'login_head', 'wp_die');
(c'est évidemment unefaçontrèsmaladroite de lefaire,mais celaempêche quiconque depouvoir se connecter via cettepage. Vouspouvezen faire unefonction de redirection,ou unmessage d'avertissement,plutôt qu'un simple dé.)
Et copiez lefichier wp-loginexistant dans un autreemplacement,en veillant àmettre àjour le chemin relatif vers
wp-load.php
près du haut (ettout autre chemin relatif quipourrait s'ytrouver,y compris les liens vers lui-mêmeet les actions duformulaire.(Vous devrez évidemment supprimer l'action que vous avez ajoutée à
login_head
ici,sinon vousne pourrezpasnonplus vous connecter àpartir de cettepage.)Ensuite,il vous suffit d'ajouter unfiltre à
login_url
qui renvoie l'adresse de votrenouvellepage de connexion,sinon lespersonnes demandant desfichiers wp-admin seront redirigées vers l'anciennepage de connexion,quiestmaintenant désactivé.You can disable the wp-login page from your functions by hooking into login_head:
add_action( 'login_head', 'wp_die');
(that's obviously a very clumsy way of doing it, but it prevents anyone from being able to login through that page. You could make that a redirect function, or a warning message, rather than just a die.)
And copy the existing wp-login file to another location, making sure to update the relative path to
wp-load.php
near the top (and any other relative paths that may be in there, including the links to itself and the form actions.(Obviously you'll have to remove the action that you added to
login_head
here, otherwise you won't be able to login from this page either.)Then, you should just need to add a filter to
login_url
that returns the address of your new login page, otherwise people requesting wp-admin files will be redirected to the old login page, which is now disabled. -
- 2011-02-23
Cen'estpas uneexcellenteidée de sécurité car lapage wp-login ou wp-adminen elle-mêmene constituepas unemenacepour la sécurité.Bien que l'onpuisse soutenir que si quelqu'un avait votremot depasse/nom d'utilisateur,ilpourraitne pas êtreen mesure detrouver où se connecter,donc la sécuritépar l'obscurité.
Comme Kronus l'a dit,vouspourriezprobablementeffectuer des réorientations sophistiquées,je ne saispas si celapourrait évoluer avec les versionsfutures ou si celaen vautmême lapeine,personnellement,je nepensepas que celaen vaille lapeine etje prends la sécurité au sérieux.
Je vous suggère demeilleuresidéespour votre connexion.
Activez sslpour le login/admin (htpps).
Protégez votrepageparmot depasseen utilisant .htaccess (vous aurez donc une double connexion).
Utilisez unplugin comme Limiter lestentatives de connexion,qui verrouille un utilisateur après un échec de connexion.
This isn't a great security idea because the wp-login or wp-admin page in of itself does not pose a security threat. Though it can be argued that if someone had your password/username they might not be able to find where to login, thus security through obscurity.
As kronus said you could probably to some fancy re-directs, not sure how well that would scale with future releases or if it is even worth the trouble, personally I don't think its worth it and I take security seriously.
I would suggest some better ideas for your login.
Enable ssl for the login/admin (htpps).
Password protect your page using .htaccess ( so you will have a double login).
Use a plugin like Limit Login Attempts, which locks out a user after failed logins.
-
Mercipour vosgentilles suggestions,maisje souhaite déplacer lapage de connexion vers un autreemplacement.Thanks for your nice suggestions, but I want to move login page to another location.
- 1
- 2011-02-23
- user931
-
C'est absolument unebonneidée.Cacher lefait que votre siteestpilotépar wordpress décourage lesgens d'essayer depirater la structure debase.Sije cherchais desblogs wordpresset www.site.com/wp-login.phpet queje trouvais uneerreur 404,je continuerais sansessayer depercer lesexploitsphp connus.Chaqueniveau de sécurité contribue à rendre votre siteencoreplus à l'épreuve desballes.It's absolutely a good idea. Hiding the fact that your site is driven by wordpress discourages people from trying to hack the core structure. If I was trolling for wordpress blogs and www.site.com/wp-login.php and came up with a 404 error I would move on without trying to break through known php exploits. Every bit of security helps make your site that much more bulletproof.
- 6
- 2012-12-14
- kristina childs
-
Et unexploit debase connu serait?Tun'en aspas outun'en connaispas,alorstuparlespour rien.Lesprofessionnels de la sécurité sécurisenten fait les applicationset ne cachent rien,c'estpour lesenfants.And a known core exploit would be? Ya you don't have or know of any, so your talking for nothing. Security professional actually secure applications and don't hide things, that's for children.
- 1
- 2012-12-14
- Wyck
-
Jen'aijamais dit d'exploits debase.Ilexiste denombreux hackspour lesplugins wordpress,lesthèmes,etc. Jetez un œil àn'importe quel site de rapport d'exploit.En regardant lesjournaux de requêtes http ayant échoué,les sites queje gère obtiennent des attaques deforcebruteet XSS adaptées à wordpresstoute lajournée,tous lesjours.Par votre logique,vousne devriezpasnonplus déplacer `wp-content`en dehors du dossier d'installation racine,` wp-config.php` au-dessus du dossier racine,supprimer "poweredby wordpress" dans lepied depage,changer la valeurpar défaut `wp_`préfixe detable ou supprimez le compte administrateurpar défaut.Lamodification des valeurspar défaut *est * sécurisante,et lapage de connexionn'estpas différente.I never said core exploits. There are hacks-a-plenty for wordpress plugins, themes, etc. Just take a look at any exploit reporting site. Looking at the failed http request logs, sites I manage get brute force and XSS attacks _tailored for wordpress_ all day, every day. By your logic, you also shouldn't move `wp-content` outside of the root install folder, `wp-config.php` above the root folder, remove "powered by wordpress" in the page footer, change the default `wp_` table prefix or delete the default admin account. Modifying defaults *is* securing, and the login page is no different.
- 4
- 2013-04-24
- kristina childs
-
- 2013-02-21
Aucune de ces réponsesn’étaitparticulièrement utile. Je remetsen question lesmotivations du PO,mais voici comment lefaire. Ajoutez ceci à votrefunctions.php,mais assurez-vous de remplacer "$ login_page_id":
// This will redirect the actual login page to your new page add_action( 'login_redirect', 'custom_login_redirect' ); function custom_login_redirect() { if ( 'wp-login.php' == $GLOBALS['pagenow'] ) { // Set your $login_page_id wp_redirect( get_permalink($login_page_id) ); die; } } // This will replace the login url used by Wordpress add_filter( 'login_url', 'custom_login_url', 10, 2 ); public function custom_login_url( $login_url='', $redirect='' ) { // Set your $login_page_id return get_permalink($login_page_id); }
Sur votrenouvellepage de connexion,vouspouvez simplement ajouter cettefonctionpour afficher unformulaire de connexion:
<?php wp_login_form(); ?>
None of these answers were especially useful. I question the motives of the OP, but here is how to do it. Add this to your functions.php, but make sure to replace "$login_page_id":
// This will redirect the actual login page to your new page add_action( 'login_redirect', 'custom_login_redirect' ); function custom_login_redirect() { if ( 'wp-login.php' == $GLOBALS['pagenow'] ) { // Set your $login_page_id wp_redirect( get_permalink($login_page_id) ); die; } } // This will replace the login url used by Wordpress add_filter( 'login_url', 'custom_login_url', 10, 2 ); public function custom_login_url( $login_url='', $redirect='' ) { // Set your $login_page_id return get_permalink($login_page_id); }
On your new login page, you can simply add this function to show a login form:
<?php wp_login_form(); ?>
-
J'aifini par créer unplugin quigère cela.https://wordpress.org/plugins/sewn-in-template-log-in/I ended up creating a plugin that handles this. https://wordpress.org/plugins/sewn-in-template-log-in/
- 0
- 2016-02-23
- Jake
-
- 2011-04-18
Créez simplement denouvellespages de connexion dans les sous-répertoires. Copiez lapage wp-loginexistante dans unnouveau répertoire de votre webroot (peut-être "/login"),renommez-laindex.php,ajoutez unbootstrap WordPressen haut de lapage,et faites ce que vous voulez avec (thématisation,etc. ).
Vous devez ajuster unpeu le codepar défaut de lapage de connexion,principalementpourtrouver/remplacer les liens codésen duret les redirections vers "wp-login.php". Maistant que vous laisseztous les hookset filtresen place,cette approchene gâchera aucuneintégration deplugin. Et lesmises àjourprincipales de WordPress conviennent,àmoins que lamise àjourn'inclue desmodifications à lapage wp-loginelle-même (ce qui seproduit rarement dans les versionsmineures).
Vouspouvez également créer despages de compte utilisateur de cettefaçon (je lesmets dans le répertoire "/profile"). Unefois que vous avezfait cela,les utilisateurs deniveau abonnéne devraientjamais avoirbesoin d'accéder à wp-admin,vouspouvez donc leprotéger avec unfichier htaccess. C'est lapartie qui vous donne réellement la sécurité supplémentaire que vous recherchiez. Assurez-vous simplement defaire uneexception dans vos htaccespour lefichier admin-ajax,car certainsplugins l'utilisent sur lefrontend.
Àpeuprès sûr que vousne trouverezpas de solution uniquement avec desplugins. Mais si vous lefaites,faites-lenous savoir!
Just build out new login pages in subdirs. Copy the existing wp-login page into a new directory in your webroot (maybe "/login"), rename it index.php, add a WordPress bootstrap to the top of the page, and do whatever you like with it (theming, etc).
You do have to adjust the login page's default code a bit, mostly to find/replace for hardcoded links and redirects to "wp-login.php". But as long as you leave all the hooks and filters in place, this approach won't mess up any plugin integration. And WordPress core updates are fine, unless the update includes changes to the wp-login page itself (which rarely happens in minor versions).
You can also build out user account pages this way (I put them in the dir "/profile"). Once you've done that, subscriber-level users should never need to go into wp-admin, so you can protect it with an htaccess file. This is the part that actually gives you the added security you were looking for. Just be sure to make an exception in your htacces for the admin-ajax file, since some plugins use it on the frontend.
Pretty sure you're not going to find a plugin-only solution. But if you do, let us know!
-
- 2014-03-06
J'aibeaucoup de ressentimentpour laplupart des réponses donnéesici.Le PO apublié une question valideet laplupart des réponses données visaient à éviter lefait qu'ilne savaitpas comment contourner la limitation de Wordpress sur ceproblème.
OP,lameilleure chose que vouspuissiezfaire à cet égardest lefiltrage IPet n'autorisez que les réseaux autorisés à se connecter à la zone WP-Admin (parexemple,l'adresse IP de votrebureau,l'adresse IP des développeurs,etc.).Detoutefaçon,vousne ferezpas votretravail chez Starbucks.C'est ainsi que les réseaux d'entrepriseprocèdent,alors autantfaire demême.
## .htaccess inside the wp-admin folder order deny,allow deny from all allow from xxx.xxx.xxx allow from xxx.xxx.xxx allow from xxx.xxx.xxx
I highly resent most of the answers given here. The OP posted a valid question and most of the answers given were intended to evade the fact that they don't have an idea how to get around Wordpress' limitation on this issue.
OP, the best thing you could for this matter is IP filtering and allow only those networks that are allowed to login to the WP-Admin area (e.g. your office IP, developers' IP, etc.). You won;t be doing your work in Starbucks anyway. This is how corporate networks do it, so you might as well do the same.
## .htaccess inside the wp-admin folder order deny,allow deny from all allow from xxx.xxx.xxx allow from xxx.xxx.xxx allow from xxx.xxx.xxx
-
Avec les versions récentes d'Apache,cela serait simplement remplacépar «requireip xx.xx.xx.xx»,je pense.With recent Apache versions, this would be replaced simply by `require ip xx.xx.xx.xx`, I think.
- 0
- 2019-02-10
- jfklein
-
- 2015-07-21
Depuis cinq ans que cette question a étéposée,personnen'a abordé leproblème central: La sécuritépar l'obscuritéest unetechnique valide pour éloigner lesbots automatiséset garder lesjournauxpropres.
/strong> Lebut de déplacer/masquer
wp-admin
est defaire apparaître à unbot que cen'est pas un site WordPress.Lafaçon dontje cache (maisne déplacepas)
wp-admin
est deprésenter auxbots lapage 404 standard lorsqu'ilsessaient d'accéder à cette URL. Seul l'accès depuismon adresse IPpersonnellepermet à lapagewp-admin
de revenir correctement. Cetteméthode regarde un attaquant/bot comme siwp-admin
n’existaitpas,maisellene romptpas le code WPprincipal ou lesplugins qui codenten dur lewp-admin
chemin. Ce code.htaccess
fait l'acte:RewriteEngine On RewriteCond %{REMOTE_ADDR} !^12\.34\.56\.78$ RewriteRule ^/?wp-admin - [R=404,L]
Bien sûr,lorsque vous utilisez le code,remplacez
12.34.56.78
par votrepropre adresse IP . N'oubliezpas d'échapper les caractères.
car l'adresse IPestinterprétée comme uneexpression régulière.In the five years that this question has been here, nobody has addressed the core issue: Security by obscurity is a valid technique to ward off automated bots and keep the logs clean. The goal of moving/hiding
wp-admin
is to appear to a bot that this is not a WordPress site.The way that I hide (but not move)
wp-admin
is to present to bots the standard 404 page when they try to access that URL. Only access from my home IP address allows thewp-admin
page to return properly. This method looks to an attacker/bot as ifwp-admin
does not exist, yet it does not break core WP code or plugins that hard-code thewp-admin
path. This.htaccess
code does the deed:RewriteEngine On RewriteCond %{REMOTE_ADDR} !^12\.34\.56\.78$ RewriteRule ^/?wp-admin - [R=404,L]
Of course, when using the code replace
12.34.56.78
with your own IP address. Don't forget to escape the.
characters as the IP address is interpreted as a regex.-
Cen'estpas une solution car lagrandemajorité desgens ont une adresse IP dynamiqueet je souhaitepeut-êtreme connecter àmonpanneau d'administration àpartir dutéléphone.This is not a solution since vast majority of people have dynamic IP as well as I might want to login to my admin panel from the phone
- 0
- 2020-01-19
- The Godfather
-
@TheGodfather: Puis [mettez àjour le RewriteConden conséquence] (https://stackoverflow.com/questions/11653461/redirect-a-range-of-ips-using-rewritecond)@TheGodfather: Then [update the RewriteCond accordingly](https://stackoverflow.com/questions/11653461/redirect-a-range-of-ips-using-rewritecond)
- 0
- 2020-01-21
- dotancohen
-
- 2018-01-31
J'aitrouvé une solutionpour déplacer la connexion Wordpress de
/login/
,/wp-admin/
ou/wp-login.php
à/cms
en utilisant uniquement les règles de réécriture.htaccess
.Aucunpluginnécessaire!
Collez ceci dans lefichier .htaccess de la racine duprojet:
<IfModule mod_rewrite.c> # Move login to /cms. RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ RewriteCond %{HTTP_REFERER} !/cms(.*)$ RewriteCond %{REQUEST_METHOD} POST RewriteRule ^(.*) ./cms?message=wrong_login_path [R=302,L] RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ RewriteCond %{QUERY_STRING} !^cms=unlocked RewriteCond %{REQUEST_METHOD} !POST RewriteRule ^(.*) ./cms?message=redirect_to_custom_login_path [R=302,L] RewriteRule ^cms wp-login.php?cms=unlocked [L] </IfModule>
Vive!
Mise àjour: J'ai amélioré certaines règles de sorte quemême les requêtes
POST
à/wp-login.php déclencheront uneerreur403 forbidden error
. Cela aidera contre lesbots quitentent de se connecter autableau deborden utilisant desméthodes deforcebrute. N'hésitezpas à commenter cet article si vous avez des améliorations à ces règles.I came up with a solution for moving the Wordpress login from
/login/
,/wp-admin/
or/wp-login.php
to/cms
using only.htaccess
rewrite rules.No plugin needed!
Paste this into the .htaccess file of the root of the project:
<IfModule mod_rewrite.c> # Move login to /cms. RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ RewriteCond %{HTTP_REFERER} !/cms(.*)$ RewriteCond %{REQUEST_METHOD} POST RewriteRule ^(.*) ./cms?message=wrong_login_path [R=302,L] RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ RewriteCond %{QUERY_STRING} !^cms=unlocked RewriteCond %{REQUEST_METHOD} !POST RewriteRule ^(.*) ./cms?message=redirect_to_custom_login_path [R=302,L] RewriteRule ^cms wp-login.php?cms=unlocked [L] </IfModule>
Cheers!
Update: I improved some rules so even the
POST
requests to /wp-login.php will trigger a403 forbidden error
. This will help against bots that are trying to login to the dashboard using brute-force methods. Feel free to comment on this post if you have any improvements to these rules. -
- 2012-07-08
Vouspouvez utiliser ceplugin:
http://wordpress.org/extend/plugins/wp-login/
Vouspouvez simplement créer unepageet indiquer auplugin où setrouve la connexion.Maistout ce qu'ilfaitest de rediriger wp-login.php vers votre "page".Ainsi,toutbot recherchant wp-login.php sera simplement redirigé vers votre "page".
Pourprotéger votrepage de connexion des robots,vous devez utiliser une combinaison de cookieet .htaccess car laplupart des robotsn'utilisentpas de cookies.Quelque chose comme ça:
RewriteCond %{HTTP_COOKIE} !^PHPSESSID=\w+ [OR] RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?example\.com/ [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule ^wp-(comments-post|login|register)\.php http://example\.com [R=301,L,NS]
Dans l'exemple ci-dessus,j'utilise un cookie de session PHP,car c'est leplus simple àmettreen œuvre.
You could use this plugin:
http://wordpress.org/extend/plugins/wp-login/
You can just create a page and tell the plugin that's where the login is. But all it basically does is redirect wp-login.php to your "page". So any bot searching for wp-login.php will just be redirected to your "page".
To protect you login page from bots you should use a combination of a cookie and .htaccess as most bots don't use cookies. Something like this:
RewriteCond %{HTTP_COOKIE} !^PHPSESSID=\w+ [OR] RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?example\.com/ [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule ^wp-(comments-post|login|register)\.php http://example\.com [R=301,L,NS]
In the example above I'm using a PHP Session Cookie, since it's the easiest to implement.
-
- 2017-05-05
Cette réponseest un ajout à dotancohen carelleestincomplète.La réponse de dotancohenne tientpas compte de
wp-login.php
,que vous devriez considérer si vousessayez d'obscurcir WordPress.Voici comment vous 404 sur
wp-admin
etwp-login.php
:RewriteEngine On RewriteCond %{REMOTE_ADDR} !^12\.34\.56\.78$ RewriteCond %{THE_REQUEST} \ /+wp-(admin|login)
This answer is an addition to dotancohen because it is incomplete. dotancohen's answer does not account for
wp-login.php
, which you should consider if you're trying to obscure WordPress.Here's how you 404 on both
wp-admin
andwp-login.php
:RewriteEngine On RewriteCond %{REMOTE_ADDR} !^12\.34\.56\.78$ RewriteCond %{THE_REQUEST} \ /+wp-(admin|login)
-
-
Parlez-vous de la réécriture d'URLen utilisant .htaccess?N'est-cepas casser lesfonctions debaseinternes?Are you talking about URL Rewrite using .htaccess? Isn't it break internal core functions?
- 0
- 2011-02-23
- user931
-
Ehbien ... si vous lefaites correctement,vousn'avez rien à casserEn lisant votre _update_,je suggérerai de renommer (ou déplacer) vos éléments de connexion dans un autre répertoire/chemin.À quoipenses-tu?Un autre sous-domaine?oujuste un autre chemin?Well... if you do it correctly doesn't need to break anything. Reading your _update_ I will suggest rename (or move) your login things to another directory/path. What do you have in mind? Another sub-domain? or just another path?
- 0
- 2011-02-23
- konus
-
Juste un autre chemin ...Just another path..
- 0
- 2011-02-25
- user931
-
Ehbien,vouspouvezfaire un _Search & Replace_ danstous lesfichiers wordpress,puis renommer lesfichiers qui ont lemêmemodèle,puis renommer le dossier `wp-admin`.C'est unpeu compliquéet vous serez attaché à cette version (toutemise àjour,cassera ces changements)Well then you can do a _Search&Replace_ in all the wordpress files, then rename the files who has the same pattern, and then rename the folder `wp-admin`. Its a little bit tricky and you will be attached to that version (any update, will broke this changes)
- 0
- 2011-02-26
- konus
-
-
- 2013-04-25
Pourmodifier l'URL de déconnexion (dans admin),modifiez votrefunctions.php:
add_filter( 'logout_url', 'custom_logout_url'); function custom_logout_url( $login_url) { $url = str_replace( 'wp-login', 'your_logout_file', $login_url ); return $url; }
To modify logout URL (in admin) edit your functions.php:
add_filter( 'logout_url', 'custom_logout_url'); function custom_logout_url( $login_url) { $url = str_replace( 'wp-login', 'your_logout_file', $login_url ); return $url; }
-
- 2012-07-08
J'ai résolu ceproblèmeen supprimanttrois demesblogset enmodifiant lesparamètres de limite de connexion aumaximumpossible.9999
Pour le spammeur d'escroquerie du 208.91.199.94 qui a accédé àmapage de connexion 750fois au cours des deux derniersjours,je travaille à l'éliminerpar d'autresmoyens.
I solved this problem by deleting three of my blogs and changing the parameters of limit-login to the maximums possible. 9999
For the one scum spammer at 208.91.199.94 who has hit my login page 750 times in the last two days, I am working on eliminating him other ways.
Je souhaite déplacer lapage de connexionphysiquement (pas virtuellement).S'il vousplaît,suggérez unpluginpourfaire cela quipourraitmodifier les codesprincipaux à la volée (même après lamise àjour du codeprincipal).Celapeut être une autre couche de sécurité.