web-dev-qa-db-fra.com

Modifier l'URL de connexion sans plug-in

Je souhaite modifier l'URL de connexion de mon installation Wordpress en dehors de /wp-admin.php

Je vise à le faire et cherche à modifier le fichier .htaccess pour ajouter:

RewriteRule ^login$ http://yourdomain.com/wp-login.php [NC, L]

D'après ce que je comprends, aller à/wp-admin permettra toujours aux gens de se connecter en utilisant ce lien. Je pensais faire une sorte de PHP redirection de sorte que, lorsque l'utilisateur tape dans/wp-admin, il passe à la page 404 non trouvée.

Quel est le meilleur moyen de changer l'URL de connexion sans utiliser de plugin et avec les standards de sécurité les plus élevés?

4
Travis Patron

Il n'y a pas de raison ou de méthode sensée de faire cela "sans plugin", car le code nécessaire pour accomplir le travail devrait être contenu dans un plugin.

Ne lancez pas votre propre code, utilisez un plugin éprouvé et conçu spécifiquement pour ce travail. C'est le moyen sécurisé.

3
Otto

Vous pouvez utiliser ce code:

add_action('init','custom_login');

function custom_login(){
 global $pagenow;
 if( 'wp-login.php' == $pagenow && $_GET['action']!="logout") {
  wp_redirect('http://YOURSITE.com/URL');
  exit();
 }
}
0
mcostales84

A propos de changer l'URL de connexion, je l'ai déjà fait par mysel. Cela m'aide à protéger mon site et à prévenir la force brutale. Vous pouvez le changer dans htaccess. Mais vous devez également ajouter le filtre pour remplacer l'ancienne URL de connexion dans wordpress. Exemple sur mon site: Fichier .htaccess:


RewriteRule ^signin(.*) wp-login.php?%{QUERY_STRING}

Dans votre thème ou votre plugin personnalisé, vous pouvez ajouter le filtre pour vous assurer que WordPress affiche l'URL de connexion correcte.


add_filter( 'login_url', 'my_login_page', 10, 2 );
function my_login_page( $login_url, $redirect ) {
    return str_replace("wp-login.php","signin",$login_url);
}

add_action( 'login_form', 'replace_login_submit_form',1); 
function replace_login_submit_form() {
  $your_content = ob_get_contents();
  $your_content = str_replace("wp-login.php","signin",$your_content);  
  ob_get_clean();
  echo $your_content;
}

J'espère que ça peut t'aider!

0
huy

Cela peut être possible en créant un tout nouveau fichier similaire à votre fichier wp-login.php existant. Les étapes doivent suivre:

Suggestion: Faites une sauvegarde du fichier wp-admin.php avant de suivre les instructions ci-dessous.

  • Ouvrez l’emplacement d’installation de votre wordpress. Si vous êtes root, recherchez un fichier nommé wp-login.php.
  • Maintenant, créez un nouveau fichier php et nommez-le comme votre nouvelle URL de connexion, c’est-à-dire si vous souhaitez créer votre URL de connexion www.votresite.com/iamgaurav au lieu de www.votresite.com/wp-admin, créez donc le nouveau fichier nommé: iamgaurav.php
  • Maintenant, copiez tous les codes du fichier wp-login.php existant et collez-le dans votre nouveau fichier iamgaurav.php
  • Remplacez toutes les instances existantes de wp-login par iamgaurav (option de remplacement facile en bloc via n'importe quel éditeur)
  • Enregistrez maintenant ce fichier et supprimez le fichier wp-login.php d’origine de la racine.

Vous avez terminé. Effacez votre cache et vérifiez la connexion avec la nouvelle URL: www.votresite.com/iamgaurav

Vous obtiendrez une erreur 404 au cas où quelqu'un essaierait de se connecter par www.votresite.com/wp-admin

J'espère que ça aide.

Merci

0
Gaurav Mishra