1. #1
    Expert éminent sénior

    Profil pro
    Inscrit en
    janvier 2007
    Messages
    10 546
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 546
    Points : 17 060
    Points
    17 060
    Billets dans le blog
    2

    Par défaut Dépannage : p'tite question de rewrite rules dans .htaccess

    Bonjour à tous

    Alors voila, je sollicite vos connaissances pour un petit problème (pour moi )

    J'aimerais écrire pour .htaccess une série de règles pour que toute demande du style :



    soit redirigée sur http://www.monsite.com

    J'ai des idées, ça marche pour les host, ça marche pour les hosts/fichiers, mais je n'arrive pas à enlever le "trailing slash" ..

    Une solution ?


    PS: voici ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ %{HTTP_HOST} 
    RewriteCond %{HTTP_HOST} !^www.monsite.com$ [NC
    RewriteRule ^(.*)$ http://www.monsite.com [L,R=301]
    RewriteCond %{HTTP_HOST} !^www.monsite.com$ [NC]
    RewriteRule ^(.*)$ http://monsite.com [L,R=301]
    RewriteEngine Off
    Mais faut dire que j'y comprend que pouic avec les expressions régulières...


    PPS: à moins qu'il existe une solution globale et "standardisée" qui est géneralement utilisée...

    PPS : je n'ai qu'une seule page sur mon site...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2011
    Messages
    1 688
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mai 2011
    Messages : 1 688
    Points : 3 292
    Points
    3 292

    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <IfModule mod_rewrite.c>
        RewriteEngine On
     
        # Redirect Trailing Slashes...
        RewriteRule ^(.*)/$ /$1 [L,R=301]
     
        # Handle Front Controller...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ index.php [L]
    </IfModule>
    Remarque : je n'ai rien inventé, c'est le htaccess proposé par le framework laravel pour redirigé toutes les requêtes vers le front controller.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    janvier 2007
    Messages
    10 546
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 546
    Points : 17 060
    Points
    17 060
    Billets dans le blog
    2

    Par défaut

    oui, mais ca re-fait sortir en faisant un 301...

    Dans la condition de rewrite (dans mes conditions a moi)

    RewriteRule ^(.*)$ http://www.monsite.com [L,R=301]

    Ca me rajoute un / a la fin....


    En gros, c'est comment rajouter la suppression du trailing / dans cette condition....
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    juin 2003
    Messages
    6 526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 6 526
    Points : 10 446
    Points
    10 446

    Par défaut

    l'URL http://monsite.com est juste un raccourci pour http://monsite.com/ mais des navigateurs comme Firefox par exemple, affichent l'URL sans le slash dans la barre d'adresse.
    regardez les détails dans le moniteur réseau du navigateur et vous verrez qu'il s'agit de la même requête HTTP avec et sans le slash. et donc vous ne pouvez pas choisir si vous préférez afficher l'URL avec ou sans.

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    janvier 2007
    Messages
    10 546
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 546
    Points : 17 060
    Points
    17 060
    Billets dans le blog
    2

    Par défaut

    Merci..

    Mais cela est OK pour les navigateurs, mais pas pour les robots.. Eux peuvent voir différentes adresses, et pénaliser le site dans le classement....

    Je viens de passer 3 jours à éplucher beaucoup de docs, de sites, etc... Même si Google maintenant semble dire que pour eux c'est kif-kif, pour beaucoup d'autres ça ne l'est pas - avec une grande discussion générale sur le fait que le / indiquerait un répertoire, alors que sans, ça indiquerait un fichier....




    [UPDATE]

    Maintenant j'ai réussi à trouver la solution.. Voila le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www.monsite.com [NC]
    RewriteRule ^(.*)$ http://www.monsite.com [L,R=301]
    RewriteCond %{HTTP_HOST} !^www.monsite.com [NC]
    RewriteRule ^(.*)$ http://www.monsite.com [L,R=301]
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . http://www.monsite.com [L,R=301]
    RewriteEngine Off



    Maintenant, dernière question : est-il mieux d'avoir comme adresse canonique http://www ou www ??

    [/UPDATE

    J'ai un doute... Je me suis servi de ce tester : https://www.neting.it/multiple-urls-...ct-checker.php

    Mais certains testeurs de SEO me disent que http://monsite et http://www.monsite ne pointent pas sur les memes domaines... Quelqu'un pourrait-il tester de son côté ?

    Merci d'avance .. Je ne sais pas à quel tester je dois faire confiance
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

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

Discussions similaires

  1. Questions sur le son dans un site web
    Par crash override dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 29/11/2005, 21h25
  2. Réponses: 2
    Dernier message: 24/11/2005, 20h13
  3. Une tite question sur Grep()
    Par bluecurve dans le forum Langage
    Réponses: 16
    Dernier message: 16/07/2005, 16h47
  4. p'tite question de cryptage ( nombre aléatoire )
    Par smyley dans le forum Général Algorithmique
    Réponses: 53
    Dernier message: 08/11/2004, 11h07

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