Empêcher les majuscules dans les URL

Discussion dans 'Débuter en référencement' créé par devilyann, 27 Avril 2018.

Tags:
  1. devilyann
    devilyann WRInaute discret
    Inscrit:
    22 Février 2009
    Messages:
    79
    J'aime reçus:
    0
    Bonjour à tous

    Suite à un audit fait par une personne externe au site que je tiens, il m'a été signalé que le site "ne force pas les URL en minuscule ce qui est important pour que google ne voit pas de nombreuses de nos pages comme des erreurs".

    J'ai donc cherché sur le net et trouvé le code pour le faire :

    Code:
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule [A-Z] - [E=HASCAPS:TRUE,S=1]
    RewriteRule ![A-Z] - [S=28]
    RewriteRule ^([^A]*)A(.*)$ $1a$2
    RewriteRule ^([^B]*)B(.*)$ $1b$2
    RewriteRule ^([^C]*)C(.*)$ $1c$2
    RewriteRule ^([^D]*)D(.*)$ $1d$2
    RewriteRule ^([^E]*)E(.*)$ $1e$2
    RewriteRule ^([^F]*)F(.*)$ $1f$2
    RewriteRule ^([^G]*)G(.*)$ $1g$2
    RewriteRule ^([^H]*)H(.*)$ $1h$2
    RewriteRule ^([^I]*)I(.*)$ $1i$2
    RewriteRule ^([^J]*)J(.*)$ $1j$2
    RewriteRule ^([^K]*)K(.*)$ $1k$2
    RewriteRule ^([^L]*)L(.*)$ $1l$2
    RewriteRule ^([^M]*)M(.*)$ $1m$2
    RewriteRule ^([^N]*)N(.*)$ $1n$2
    RewriteRule ^([^O]*)O(.*)$ $1o$2
    RewriteRule ^([^P]*)P(.*)$ $1p$2
    RewriteRule ^([^Q]*)Q(.*)$ $1q$2
    RewriteRule ^([^R]*)R(.*)$ $1r$2
    RewriteRule ^([^S]*)S(.*)$ $1s$2
    RewriteRule ^([^T]*)T(.*)$ $1t$2
    RewriteRule ^([^U]*)U(.*)$ $1u$2
    RewriteRule ^([^V]*)V(.*)$ $1v$2
    RewriteRule ^([^W]*)W(.*)$ $1w$2
    RewriteRule ^([^X]*)X(.*)$ $1x$2
    RewriteRule ^([^Y]*)Y(.*)$ $1y$2
    RewriteRule ^([^Z]*)Z(.*)$ $1z$2
    RewriteRule [A-Z] - [N]
    RewriteCond %{ENV:HASCAPS} TRUE
    RewriteRule ^/?(.*) /$1 [R=301,L]
    </IfModule>
    Cela marche parfaitement pour les urls de type
    https://www.monsite.com/mapage.html

    Malheureusement pas du tout pour les pages de type
    https://www.monsite.com/sousdossier/mapage.html

    Comment régler ce problème ?

    Merci d'avance
     
  2. rick38
    rick38 WRInaute passionné
    Inscrit:
    23 Février 2013
    Messages:
    1 226
    J'aime reçus:
    145
    En se débarrassant de ce pseudo-expert.
     
    Furtif apprécie ceci.
  3. devilyann
    devilyann WRInaute discret
    Inscrit:
    22 Février 2009
    Messages:
    79
    J'aime reçus:
    0
    Je vais avoir du mal à répondre cela à mon client sachant que ce pseudo expert est un français installé aux EU et intervenant dans une université américaine ^^

    Quel code faut il que je rajoute pour que cela affecte aussi les urls avec des sous dossiers ?
     
  4. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    8 838
    J'aime reçus:
    246
    Furtif apprécie ceci.
  5. devilyann
    devilyann WRInaute discret
    Inscrit:
    22 Février 2009
    Messages:
    79
    J'aime reçus:
    0
    Mais je veux bien que ce soit une connerie, mais je me vois mal dire ça à mon client qui a payé qqun sensé être de confiance ^^ Jamais je n'aurai pensé devoir faire une modif comme celle là mais là vraiment pas le choix...
     
  6. devilyann
    devilyann WRInaute discret
    Inscrit:
    22 Février 2009
    Messages:
    79
    J'aime reçus:
    0
    Bref j'aurai besoin de qqun qui puisse me dire ce que je dois modifier dans la partie du code ci dessous pour que le sous dossiers soient aussi pris en compte

    Code:
    RewriteCond %{ENV:HASCAPS} TRUE
    RewriteRule ^/?(.*) /$1 [R=301,L]
     
  7. cthierry
    cthierry WRInaute passionné
    Inscrit:
    15 Janvier 2005
    Messages:
    2 194
    J'aime reçus:
    40
    Pourquoi ne pas le gérer directement en php avec getenv('REQUEST_URI'); ?

    Genre (à l'arrache :) )
    Code:
    $origine = getenv('REQUEST_URI');
    $urldefinitive = "/ton-sous-dossier/tout-en-minuscule.html"; <= généré en php :-)
    if ($origine != $urldefinitive){
    header("Location: $urldefinitive", true, 301); 
    exit;
    }
    
     
  8. thomask
    thomask WRInaute discret
    Inscrit:
    19 Janvier 2017
    Messages:
    131
    J'aime reçus:
    3
    Tu as quand même conscience que ça n'influe pas l'algorithme de Google, que tu aies des majuscules et/ou minuscules dans tes URL ?
     
  9. elas
    elas WRInaute impliqué
    Inscrit:
    26 Février 2008
    Messages:
    759
    J'aime reçus:
    31
    je crois que quelque part les normes ça doit être expliqué le cas des majuscules dans les URLS
    Recherche la bonne norme, quelq au chose comme ça : https://tools.ietf.org/html/rfc3986
     
  10. rick38
    rick38 WRInaute passionné
    Inscrit:
    23 Février 2013
    Messages:
    1 226
    J'aime reçus:
    145
    Il n'y a pas de norme sauf pour dire que HTTPS://WWW.WEBRANKINFO.COM doit fonctionner en passant en lower case (géré par le browser j'imagine), mais pour le reste de l'URL si le serveur est Linux c'est sensible à la casse et sous IIS les deux fonctionnent (si on ne change pas la config par défaut).

    Ou de manière plus générique :

    Code:
    if ($_SERVER['REQUEST_URI'] != strtolower($_SERVER['REQUEST_URI']))
    {
        header('Location: ' . strtolower($_SERVER['REQUEST_URI']), true, 301);
        exit();
    }
    
    Pour la solution Apache / .htaccess, ça se trouve sur le net mais ça m'a l'air plus compliqué...
     
    #10 rick38, 1 Mai 2018
    Dernière édition: 1 Mai 2018
  11. elas
    elas WRInaute impliqué
    Inscrit:
    26 Février 2008
    Messages:
    759
    J'aime reçus:
    31
    Although schemes are case-
    insensitive, the canonical form is lowercase and documents that
    specify schemes must do so with lowercase letters. An implementation
    should accept uppercase letters as equivalent to lowercase in scheme
    names (e.g., allow "HTTP" as well as "http") for the sake of
    robustness but should only produce lowercase scheme names for
    consistency.
     
  12. elas
    elas WRInaute impliqué
    Inscrit:
    26 Février 2008
    Messages:
    759
    J'aime reçus:
    31
    bon mais sinon comme ca a l'air d'être du linux, il faut regarder dans la doc apache
    Un gros linuxien te dirait que c'est dans la doc et que les doc c'est fait pour être lues.

    Donc peut-être du côté de rewriteMap : chaque fois qu'on veut faire un truc un peu tricky dans les redirections sous apache c'est dans rewriteMap

    Allez, encore un peu de copier coller :

    Lorsque le type-map int est spécifié, la source est une des fonctions RewriteMap internes disponibles. Les développeurs de modules peuvent fournir des fonctions internes supplémentaires en les enregistrant via l'API ap_register_rewrite_mapfunc. Les fonctions fournies par défaut sont :

    • toupper:
      Met tous les caractères de la clé en majuscules.
    • tolower:
      Met tous les caractères de la clé en minuscules.
    • escape:
      Protège les caractères spéciaux de la clé en les transformant en leur code hexadécimal.
    • unescape:
      Retraduit les codes hexadécimaux de la clé en caractères spéciaux.
    Pour utiliser une de ces fonctions, créez une RewriteMap faisant référence à cette fonction int, et utilisez-la dans votre règle RewriteRule :

    Redirige un URI vers son équivalent en minuscules

    RewriteMap lc int:tolower
    RewriteRule "(.*)" "${lc:$1}" [R]
    Notez que cet exemple n'est fourni qu'à titre d'illustration, et ne constitue en aucun cas une recommandation. Si vous voulez rendre des URLs insensibles à la casse, vous devez plutôt vous tourner vers mod_speling.



    Chez Krosoft, c'est très différent. Si tu fais du .net MVC jusqu'à version 5, alors tu va t"en sortir avec le module rewrite-rule de IIS qui te permet de tout faire, directement dans IIS, mais c'est un peu long à écrire dans un forum de référencement.
    Si tu fais du net core, alors c'est encore 100 fois plus puissant, mais c'est dans le code du site et 1000 fois plus compliqué si tu fais du web et n'a jamais touché à des machins tels que la DI (prononcer di aillle)
     
  13. zikeur54
    zikeur54 WRInaute impliqué
    Inscrit:
    15 Juin 2010
    Messages:
    596
    J'aime reçus:
    38
Chargement...
Similar Threads - Empêcher majuscules Forum Date
Empêcher Googlebot de crawler/indexer tout un dossier Débuter en référencement 19 Avril 2019
désindexer et/ou empêcher crawl ? Crawl et indexation Google, sitemaps 4 Janvier 2019
Patron de Qwant : "Google essaye d'empêcher ..." Autres moteurs de recherche connus 1 Novembre 2018
Empécher indexation Crawl et indexation Google, sitemaps 10 Avril 2018
Comment empêcher les gens de faire du copier coller ? Débuter en référencement 21 Janvier 2018
Empêcher des script javascript d'etre indexer Crawl et indexation Google, sitemaps 13 Mars 2017
Comment empêcher le crawl sur les pages "filter" et "order" Débuter en référencement 20 Janvier 2017
empêcher des caractères comme /?longurlwascutoff_0&& derrière l'url d'un site URL Rewriting et .htaccess 30 Avril 2016
Empêcher l'indexation de mon fichier sitemap Débuter en référencement 29 Avril 2016
empêcher une partie du site de visualisation Développement d'un site Web ou d'une appli mobile 30 Mars 2016
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice