Version complète: sur le forum Webmaster Hub : Redirection pour ma page d'accueil via htaccess
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
Keroin
Salut à tous,
Mon problème est le suivant, actuellement il y a 4 possibilités d'accéder à ma page d'accueil (voir signature) en utilisant les adresses suivantes :
ht*p://www.exemple.tld/
ht*p://exemple.tld/
ht*p://www.exemple.tld/Frontpage/
ht*p://www.exemple.tld/index.php

Pour éviter le duplicate content je souhaiterais bien sûr que tout soit redirigé vers ht*p://www.exemple.com/ via une règle dans mon htaccess.

Actuellement mon htaccess se compose des règles suivantes :

CODE
DirectoryIndex index.php
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php


Mon hébergeur est 1&1

Que faut-il y ajouter ?
Merci pour vos suggestions smile.gif
Dan
Cela ne règle pas le problème de l'accès au domaine avec et sans le www smile.gif

Il faut utiliser, avant toute règle:
CODE
RewriteCond %{HTTP_HOST} !^www.example.tld$
RewriteRule /?(.*) http://www.example.tld/$1 [R=301,L]


Ensuite, ta règle redirige toute URL qui n'est ni un fichier ni un répertoire vers index.php ... à mon avis pas une bonne idée si tu veux un jour utiliser la réécriture pour avoir des meilleures URLs.
Et tant qu'à faire, autant rediriger vers / plutôt que vers /index.php

Dan
Keroin
Salut Dan et merci de me répondre
La réécriture est déjà en place sur le site (à la base c'est un joomla avec le composant remosef pour la réécriture) et fonctionne plutôt correctement.
Et en fait il n'y a vraiment que ce souci de page d'accueil qui m'embête un peu.
Je vais essayer avec la règle que tu m'a proposée (en première position dans mon htaccess si j'ai bien compris).
pour la redirection vers index.php, il suffit dans mon htaccess original que je remplace "index.php" par "/" ???
Je vais essayer tout ça et je vous tiens eu courant smile.gif
Keroin
Bon alors après test, la redirection 301 de domaine.com vers www.domaine.com fonctionne parfaitement, merci Dan a_thumbsup_20.gif
Par contre ma page d'accueil est toujours accessible quand je tape www.mondomaine.com/frontpage ou www.mondomaine.com/index.php wacko.gif

Je met ici mon nouveau htaccess si quelqu'un avait une idée pour que ces deux pages soient redirigées vers www.mondomaine.com

CODE
RewriteCond %{HTTP_HOST} !^www.keroinsite.com$
RewriteRule /?(.*) http://www.keroinsite.com/$1 [R=301,L]
DirectoryIndex index.php
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /
Dan
Si tu veux un changement de l'URL du navigateur, ainsi qu'une mise à jour des liens du robot, il faut faire une redirection 301 (donc externe).

Donc mettre plutôt:
CODE
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) http://www.tondomaine.tld/ [R=301,L]


Ensuite vas dans les outils du Hub et utilise le visualisateur d'entêtes... tu verras la redirection wink.gif
http://www.webmaster-hub.com/outils/http-viewer.php

CITATION
... si quelqu'un avait une idée ...

C'est bien plus qu'une idée tongue.gif
Keroin
En mettant uniquement cette règle dans mon htaccess j'ai une erreur 500 sad.gif et plus aucun accès au site.
J'ai surement du oublier quelque chose ou peut être qu'il y a une particularité au niveau de l'hébergeur (1&1) ????

J'ai remis le htaccess qui fonctionne (cf : message 4) et lancer l'outil d'analyse d'entête du Hub qui me donne le résultat suivant si ça peut aider :

CITATION
URL: http://www.keroinsite.com/
HTTP/1.1 200 OK
Date: Thu, 12 Oct 2006 15:25:38 GMT
Server: Apache/1.3.37 (Unix)
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Pragma: no-cache
X-Powered-By: PHP/4.4.4
Set-Cookie: b5d25f0040a4a862cbeee5924e3cb9c7=-; path=/
Set-Cookie: mosvisitor=1
Last-Modified: Thu, 12 Oct 2006 15:25:38 GMT
Connection: close
Content-Type: text/html
Dan
Désolé, faute de frappe, c'est R=301 et pas R+301 .... sad.gif
Quand on oublie de presser "shift"... ça arrive !

J'ai corrigé mon post !
Keroin
Non bah merci d'insister mais ça veut toujours pas shutup.gif

avec le htaccess suivant :
CODE
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) http://www.keroinsite.com/ [R=301,L]

=> la page d'accueil est de nouveau accessible via http://mondomaine.tld et ne redirige plus vers le www.
=> quand j'essaye d'y acceder en tapant www.mondomaine.tld/frontpage => page blanche avec erreur
=> la page est également toujours accessible avec www.mondomaine.tld/index.php wacko.gif
Donc pour l'instant j'ai à nouveau remis le htaccess fonctionnel (message "4") qui redirige le http://mondomaine.tld vers http://www.mondomaine.tld.
J'avoue que là je suis complétement paumé whistling.gif mais bon ça avance doucement smile.gif
Keroin
Resalut à tous,
Bon bah j'avance pas trop sur mon problème des deux pages (www.mondomaine.tld/index.php et www.mondomaine.tld/frontpage) que je souhaiterais rediriger vers www.mondomaine.tld/.

Mon .htaccess est le suivant pour le moment :

CODE
RewriteCond %{HTTP_HOST} !^www.keroinsite.com$
RewriteRule /?(.*) http://www.keroinsite.com/$1 [R=301,L]
DirectoryIndex index.php
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /


Je pense ajouter à la suite de mon .htaccess les deux lignes suivantes :

CODE
Redirect Permanent /index.php http://www.keroinsite.com/
Redirect Permanent /frontpage http://www.keroinsite.com/


Seulement n'y connaissant rien en UR et htaccess j'ai un peu peur de faire une boulette qui pourrait nuire à mon référencement. whistling.gif

Est ce que quelqu'un peut me confirmer (ou me dire "touche pas à ça p'tit c*n" biggrin.gif ) que c'est la bonne marche à suivre ? wink.gif
Dan
Déjà dans ton .htaccess, tu as des règles avant le RewriteEngine On ... sad.gif
Il faut corriger cela !

Ensuite, tu peux simplement rajouter une règle comme celle-ci, à la place de tes 2 RedirectPermanent:
CODE
RewriteRule /?(index.php|frontpage) http://www.keroinsite.com/ [R=301,L]
Keroin
Ok donc quelquechose comme ça conviendrait mieux ???

CODE
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /
RewriteCond %{HTTP_HOST} !^www.keroinsite.com$
RewriteRule /?(.*) http://www.keroinsite.com/$1 [R=301,L]
DirectoryIndex index.php
RewriteRule /?(index.php|frontpage) http://www.keroinsite.com/ [R=301,L]


J'essaye comme ça...

Edit : oula bah non je dois encore avoir un souci au niveau de l'ordre des requêtes car j'ai un message du style "Firefox à détecté que la manière dont le serveur redirige la requête ne pourra pas aboutir" (ou quelquechose comme ça) ...
Dan
Le DirectoryIndex n'a rien à faire dans tes règles de réécriture
Le RewriteCond testant le nom de domaine devrait être avant toutes les autres règles...
Et lorsqu'une règle est trouvée, il faut mettre le flag [L] à la fin de celle-ci.

Donc tu te mélanges manifestement les pinceaux ! laugh.gif
Keroin
Bah vi, c'est pour ça plus haut je disais qu'il fallait me dire "touche pas à ça p'tit c*n" si j'allais faire une bétise wink.gif

Dans quel ordre dois-je mettre ces satanées lignes dans ce cas ???
Keroin
Suite à mes déboires d'UR pour rediriger mon url avec /index.php vers www.mondomaine.tld, j'ai opté pour un ajout de redirection en php directement dans la page (car via htaccess ça ne veut pas fonctionner).
Le code est le suivant :

CODE
<?php if($_SERVER['REQUEST_URI'] == "/index.php")
   {
   header ('HTTP/1.1 301 Moved Permanently');
   header('Location: http://www.keroinsite.com');
   }
   ?>


L'outil de test de redirection du Hub me donne pour cette url le résultat suivant :

CODE
URL: http://www.keroinsite.com/index.php
HTTP/1.1 301
Date: Tue, 24 Oct 2006 12:30:47 GMT
Server: Apache/1.3.33 (Unix)
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Pragma: no-cache
X-Powered-By: PHP/4.4.4
Set-Cookie: b5d25f0040a4a862cbeee5924e3cb9c7=-; path=/
Set-Cookie: mosvisitor=1
Last-Modified: Tue, 24 Oct 2006 12:30:47 GMT
Location: http://www.keroinsite.com
Connection: close
Content-Type: text/html

Redirection vers :
URL: http://www.keroinsite.com/
HTTP/1.1 200 OK
Date: Tue, 24 Oct 2006 12:30:47 GMT
Server: Apache/1.3.33 (Unix)
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Pragma: no-cache
X-Powered-By: PHP/4.4.4
Set-Cookie: b5d25f0040a4a862cbeee5924e3cb9c7=-; path=/
Set-Cookie: mosvisitor=1
Last-Modified: Tue, 24 Oct 2006 12:30:48 GMT
Connection: close
Content-Type: text/html


Je pense que c'est correct et que mon référencement ou le crawl de mes pages ne sera pas pénalisé maisj'aimerais bien en avoir confirmation.
Est ce que cela vous semble correct comme méthode ?
Dan
Tu as effectivement une redirection avec entête 301... c'est donc tout bon !
Keroin
Merci Dan pour la confirmation hypocrite.gif
Encore une dernière petite question et après promis je ne vous embête plus avec ce topic tongue.gif

Je souhaite également rediriger de la même façon ma page www.mondomaine.tld/frontpage , est ce que je doit mettre deux fois le code en php ou une simple petite modif dans ce code suffit ? Et si c'est le cas, de quoi doit avoir l'air mon code pour prendre en compte les deux pages ?
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.