IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Interdire le https aux robots avec htaccess


Sujet :

Apache

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 52
    Par défaut Interdire le https aux robots avec htaccess
    Bonjour,

    j'utilise Wordpress comme système éditorial et la partie d'administration est gérée en SSL (une règle dans le .htaccess exige la connexion en https pour la partie admin).

    Le problème est que les moteurs visitent mes articles en passant par le http et https à cause, je crois, du sytème de notification automatique intégré à Wordpress (vu que l'admin est en https, ça envoie une url en https).

    Du coup, je suis référencé en http et https, ce que je ne veux pas car ça ne sert à rien, ça oblige les visiteurs à des manipulations pour accepter le certificat, ça risque de me faire du duplicate content, etc. Bref, je ne veux pas que les robots accèdent au https.

    Je veux donc créer une règle de réécriture dans le fichier .htaccess, mais ça ne fonctionne pas. La voici précédée de la règle que WP insère par défaut à l'installation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /journal/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /journal/index.php [L]
    </IfModule>
    # END WordPress
     
    # Oblige les moteurs de recherche à passer par le http pour indexer
    RewriteCond %{HTTP_USER_AGENT} (Googlebot|Exabot|Ask|msn|yahoo|Gigabot|Twiceler) [NC]
    RewriteCond %{SERVER_PORT} !80
    RewriteRule (.*) http://www.monsite.com/journal/$1 [R=301,L]
    J'ai beau activer/désactiver/modifier les directives, je me retrouve toujours renvoyé à l'index du site au lieu de juste passer en http quand je tente d'y accéder par https.

    Merci de votre aide

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Citation Envoyé par Guillaume.G Voir le message
    J'ai beau activer/désactiver/modifier les directives, je me retrouve toujours renvoyé à l'index du site au lieu de juste passer en http quand je tente d'y accéder par https.
    Comment testes-tu et avec quelle URL ? Ta règle vaut pour certains user agents qui ne sont pas les navigateurs conventionnels, donc forcément, tes règles ne peuvent pas être activées en testant avec IE ou Firefox : il faut forger l'en-tête User-Agent.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 52
    Par défaut
    Salut,

    comme bien souvent, coucher son problème sur le papier est un grand pas vers sa résolution. Et je crois bien que c'est ce qui vient de se passer... au bout de plusieurs jours. J'aurais dû le faire plus tôt

    J'ai attentivement relu mon message afin d'y trouver une erreur quelconque, et il m'est venu une idée en voyant ces deux bouts de code isolés : je les ai interverti. J'ai ensuite désactivé la directive http_user_agent afin de l'appliquer à tous.

    Résultat, ça fonctionne parfaitement. Je pense que les directives installée par Wordpress au moment de l'installation entraient en conflit avec les miennes. Problème : j'ignore à quel niveau.

    Voici donc l'ensemble des règles que j'applique pour gérer l'accès front/BO en http/https :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    RewriteEngine On
     
    #
    # Oblige les moteurs de recherche à passer par le http pour indexer.
    # Directive à placer avant le code Wordpress. Dans le cas où on veut généraliser à tout le monde,
    # commenter la ligne user_agent et décommenter les deux lignes request_uri afin de permettre le https sur l'admin.
    #
    RewriteCond %{HTTP_USER_AGENT} (Googlebot|Gigabot|Slurp|Yeti|msnbot|Twiceler|cuill|Ask|Jeeves|Exabot|VoilaBot|MJ12bot|archiver|mnoGoSearch|nutchLycos|Alltheweb|Fast|Inktomi|DeepIndex|Moreoverbot|BlogPulseLive) [NC]
    #RewriteCond %{REQUEST_URI} !/wp-admin(/.*)?
    #RewriteCond %{REQUEST_URI} !wp-login.php(.*)?
    RewriteCond %{SERVER_PORT} !80
    RewriteRule (.*)? http://www.monsite.com/journal/$1 [R=301,L]
     
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /journal/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /journal/index.php [L]
    </IfModule>
    # END WordPress
     
    # Accès à l'administration en SSL + login obligatoire
    <Files wp-login.php>
    SSLOptions +StrictRequire
    SSLRequireSSL
    AuthUserFile /chemin/fichier/mot/de/passe
    AuthGroupFile /dev/null
    AuthName "Administration"
    AuthType Basic
    <Limit GET POST>
    require user moi
    </Limit>
    </Files>
    J'ajoute évidemment un accès "<Limit GET POST>" dans le dossier wp-admin ainsi qu'un "SSLRequire". Pour l'instant, je n'ai constaté aucun conflit. Pour parfaire le tout, il faut installer ce plugin qui s'occupe de transformer tous les liens récalcitrants.

    Il me semble que mon montage est plutôt bon. Est-ce le cas ou ai-je commis des erreurs ?

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 14
    Dernier message: 19/11/2012, 18h41
  2. Interdire plusieurs répertoires avec .htaccess
    Par matpush dans le forum Apache
    Réponses: 6
    Dernier message: 25/10/2010, 14h21
  3. Réponses: 5
    Dernier message: 22/04/2005, 11h38
  4. Réponses: 38
    Dernier message: 16/02/2005, 02h03
  5. Protection d'un répertoire avec .htaccess
    Par Bweb dans le forum Apache
    Réponses: 2
    Dernier message: 04/05/2004, 18h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo