Redirec domaine avec index.htm vers domaine sans index.htm

Discussion dans 'URL Rewriting et .htaccess' créé par refsite, 8 Avril 2008.

  1. refsite

    refsite WRInaute discret

    Inscrit:
    19 Janvier 2007
    Messages:
    86
    J'aime reçus:
    0
    Bonjour,

    Mon problème est le suivant :

    Pour éviter le duplicate content sur mon site je souhaite rediriger :

    http://www.domaine_a_bibi.com/index.htm

    vers

    http://www.domaine_a_bibi.com/index.htm


    J'ai donc essayé :

    RewriteRule ^index.htm$ http://www.domaine_a_bibi.com/ [NC,L,R=301]

    Mais la page ne se charge plus et le navigateur me dit que les redirections sont faites de manière que sa n'aboutira pas.
    En gros sa boucle !

    Donc j'essaie sa :

    RewriteCond %{REQUEST_URI} ^/index.htm$
    RewriteRule ^(.*)$ http://www.google.com/ [QSA,L,R=301]

    Marche pas non plus mais je remarque tout de même que pour les deux urls :
    - http://www.domaine_a_bibi.com
    - http://www.domaine_a_bibi.com/index.htm

    Je suis redirigé vers la page de google.

    Je ne vois donc pas comment je peut faire une règle qui ne boucle pas étant donné que avec et sans le "index.htm" l'url passe dans la condition de redirection.

    Merci pour vos réponses
     
  2. bertimus

    bertimus WRInaute passionné

    Inscrit:
    24 Août 2005
    Messages:
    2 229
    J'aime reçus:
    0
    Le php c'est gégé :
    Code:
    <?php
    // Redirection permanente vers le nom de domaine si on a index.htm (ou php) dans l'url
    if(eregi('index.(htm|php)', $_SERVER['REQUEST_URI']) ) {
       header ('HTTP/1.1 301 Moved Permanently');
       header('Location: http://www.domaine_a_bibi.com/');
    }
    ?>
    
    A mettre tout en haut de ton index.php (il te faudra donc renommer index.htm en index.php)
     
  3. refsite

    refsite WRInaute discret

    Inscrit:
    19 Janvier 2007
    Messages:
    86
    J'aime reçus:
    0
    Je te remercie mais mon but est de le faire avec le htaccess, je ne voie pas pourquoi sa marche partout sauf la ?
    Tout les tutoriels que j'ai vu disent de faire comme sa pourquoi sa ne fonctionne pas ?
     
  4. webmasterlamogere

    webmasterlamogere WRInaute passionné

    Inscrit:
    17 Décembre 2006
    Messages:
    1 871
    J'aime reçus:
    0
    avec ca :
    Code:
    RewriteCond %{REQUEST_URI} ^index\.(htm|html|php)$
    RewriteRule ^(.*)index\.(htm|html|php)$ /$1 [R=301,L]
     
  5. refsite

    refsite WRInaute discret

    Inscrit:
    19 Janvier 2007
    Messages:
    86
    J'aime reçus:
    0
    Cela ne fonctionne pas non plus.
     
  6. webmasterlamogere

    webmasterlamogere WRInaute passionné

    Inscrit:
    17 Décembre 2006
    Messages:
    1 871
    J'aime reçus:
    0
    et avec ca :
    Code:
    RewriteCond %{REQUEST_URI} ^(/.*)?/index\.(htm|html|php|asp)$
    RewriteRule ^(.*)index\.(htm|html|php|asp)$ /$1 [R=301,L]
     
  7. refsite

    refsite WRInaute discret

    Inscrit:
    19 Janvier 2007
    Messages:
    86
    J'aime reçus:
    0
    Cela ne fonctionne malheureusement toujours pas !
     
  8. webmasterlamogere

    webmasterlamogere WRInaute passionné

    Inscrit:
    17 Décembre 2006
    Messages:
    1 871
    J'aime reçus:
    0
    ça marche chez moi en local avec WAMP.
    sinon j'utilise sur mes sites la solution php donnée par bertimus
     
  9. webmasterlamogere

    webmasterlamogere WRInaute passionné

    Inscrit:
    17 Décembre 2006
    Messages:
    1 871
    J'aime reçus:
    0
    j'ai trouvé une variante qui marche sur mon serveur :
    Code:
    RewriteCond %{REQUEST_URI} ^(/.*)?/index\.(htm|html|php|asp)$
    RewriteCond %{THE_REQUEST} /index\.(htm|html|php|asp)
    RewriteRule ^(.*)index\.(htm|html|php|asp)$ /$1 [R=301,L]
     
  10. Leonick

    Leonick WRInaute accro

    Inscrit:
    8 Août 2004
    Messages:
    22 709
    J'aime reçus:
    0
    c'est normal que ça boucle, car par défaut quand on appelle la racine d'un répertoire, il exécute index.* et donc si tu transformes index.* en / il va boucler sans fin.
    La solution : tu renommes ton index.htm en toto.htm
    puis tu fais ta redirection et tu rajoutes
    DirectoryIndex toto.htm
    et ça marche