Utilité de rediriger /index.htm vers / ?

Nouveau WRInaute
Bonjour à tous !

Je viens de passer 3 semaines, à temps plein, à parcourir les forums de WRI et lire quelques centaines de post... J'avais référencé mon site en 2005, et constatant une baisse constante de fréquentation (de 700 à 150 par jour) du site de ma société et, en conséquence, de mon chiffre d'affaires, j'ai découvert à quel point les techniques de référencement avaient évolué...

Les forums de WRI sont une vraie mine d'or, mais j'ai, cependant, encore quelques questions. Je précise que, malgré un bagage technique, je suis entrepreneur, et absolument pas informaticien...

Depuis quelques mois, donc, j'ai mis en place un fichier htaccess débutant avec les lignes suivantes :

RewriteEngine on
RewriteCond %{HTTP_HOST} ^exemple.com$
RewriteRule ^(.*) http://www.exemple.com/$1 [QSA,L,R=301]

Cette forme d'écriture est-elle la bonne ? En tout cas, elle semble fonctionner.

Par contre, malgré tous les posts que j'ai lus à ce sujet, je ne parviens toujours pas à savoir si il faut faire la même chose pour index.htm, en la redirigeant vers la racine du site.

Quand je tape http://www.exemple.com/index.htm, l'url affichée reste celle-ci.
Quand je tape http://www.exemple.com, l'url affichée reste celle-ci.

Mais est ce qu'il y a duplicate content ? Est-ce qu'en tapant http://www.exemple.com/index.htm, il ne faudrait pas qu'il y ait redirection, et que l'url devienne alors http://www.exemple.com ?

J'ai lu, sur ce forum, plein de choses différentes, et je suis perdu. J'ai entendu parler d'histoires de boucle, etc.

S'il n'y a pas duplicate content, c'est donc réglé. Si, par contre, il faut rediriger index.htm vers /, comme je l'ai fait avec .exemple.com vers www.exemple.com, quelles lignes écrire après les 3 premières lignes de mon htaccess données ci-dessus ?

Voici quelques exemples piochés sur WRI, mais je ne parviens pas à savoir quoi choisir :

RewriteRule ^index\.htm$ http://www.example.com/ [QSA,L,R=301]
RewriteCond %{REQUEST_URI} ^/index.htm
RewriteRule $ http://www.exemple.com/ [R=301,L]

RewriteEngine on
RewriteCond %{HTTP_HOST} ^exemple.com$
RewriteRule ^(.*) http://www.exemple.com/$1 [QSA,L,R=301]

RewriteEngine on
RewriteCond %{HTTP_HOST} ^exemple.com$
RewriteRule ^(.*) "http://www.exemple.com/$1" [QSA,L,R=301]
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ (/.*)?/index.(htm)
RewriteRule ^(.*)index.(htm)$ /$1 [R=301,L]

RewriteEngine on
RewriteCond %{HTTP_HOST} ^exemple.com$
RewriteRule ^(.*) "http://www.exemple.com/$1" [QSA,L,R=301]
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ (/.*)?/index.(htm)
RewriteRule ^(.*)index.(htm)$ /$1 [R=301,L]

Mille mercis pour votre aide ! :)
 
WRInaute occasionnel
Oui, si tu accèdes à un contenu par différents URL alors c'est de la duplication de contenu soit sanction !

Pour le htacess, je pense que tu peux faire :

Code:
RewriteCond %{HTTP_HOST} ^www.site.com$ [OR]
RewriteCond %{HTTP_HOST} ^site.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.site.com/index.html$ [OR]
RewriteCond %{HTTP_HOST} ^site.com/index.html$ [OR]
RewriteRule ^(.*)   http://www.site.com/$1  [QSA,L,R=301]
ou
RewriteCond %{HTTP_HOST} ^www.site.com$ [OR]
RewriteCond %{HTTP_HOST} ^site.com$ [OR]
RewriteRule ^(.*)   http://www.site.com/$1  [QSA,L,R=301]
RedirectPermanent /index.html http://www.site.com/
 
WRInaute discret
Bonjour

voila le code qui fonction pour les 2 ( sans www vers www , et index vers racine )

Code:
RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.tonsite\.com [NC] 
RewriteRule (.*) http://www.tonsite.com/$1 [QSA,R=301,L]

RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ (/.*)?/index.(htm|html|php|asp|shtml)
RewriteRule ^(.*)index.(htm|html|php|asp|shtml)$ /$1 [R=301,L]


Merci de lire ces topics :
des codes pour la redirection .htaccess
https://www.webrankinfo.com/forum/t/des-codes-pour-la-redirection-htaccess.110832/

Pratique de Htaccess : à lire avant de poser
https://www.webrankinfo.com/forum/t/pratique-de-htaccess-a-lire-avant-de-poser.132885/


Bonne journée
 
Nouveau WRInaute
Liste-riad a dit:
Bonjour

voila le code qui fonction pour les 2 ( sans www vers www , et index vers racine )

Code:
RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.tonsite\.com [NC] 
RewriteRule (.*) http://www.tonsite.com/$1 [QSA,R=301,L]

RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ (/.*)?/index.(htm|html|php|asp|shtml)
RewriteRule ^(.*)index.(htm|html|php|asp|shtml)$ /$1 [R=301,L]


Merci de lire ces topics :
des codes pour la redirection .htaccess
https://www.webrankinfo.com/forum/t/des-codes-pour-la-redirection-htaccess.110832/

Pratique de Htaccess : à lire avant de poser
https://www.webrankinfo.com/forum/t/pratique-de-htaccess-a-lire-avant-de-poser.132885/


Bonne journée

Mille mercis pour ces suggestions. Mais j'avais déjà lu les topics suggérés : le problème est que sur les nombreux posts consacrés au sujet, les codes sont, à chaque fois, différents.

Toutefois, je ne comprends pas la différence entre le code suggéré et mon code.

De mon côté, j'ai :

RewriteCond %{HTTP_HOST} ^exemple.com$
RewriteRule ^(.*) http://www.exemple.com/$1 [QSA,L,R=301]

Quelle est la différence avec le code suggéré ?

RewriteCond %{HTTP_HOST} !^www\.exemple\.com [NC]
RewriteRule (.*) http://www.exemple.com/$1 [QSA,R=301,L]

Mon propre code est-il correct à ce sujet là ?

Et sur le code suivant, pourquoi citer toutes les extensions, alors que ma page d'accueil n'est que index.htm ?

RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ (/.*)?/index.(htm|html|php|asp|shtml)
RewriteRule ^(.*)index.(htm|html|php|asp|shtml)$ /$1 [R=301,L]

Encore merci ! :)
 
Nouveau WRInaute
Une petite aide ? :)

Allez, j'en profite pour une dernière question.

Si je fais un rewrite de /index.htm vers /, que dois-je mettre pour chaque redirection spécifique dans htaccess ?

Jusqu'à présent, je mettais :

redirect 301 /page-qui-nexiste-plus.htm http://www.monsite.com/index.htm

Mais dois-je mettre, à partir de maintenant :

redirect 301 /page-qui-nexiste-plus.htm http://www.monsite.com/

??

Ou même :

redirect 301 /page-qui-nexiste-plus.htm http://www.monsite.com

Merci encore ! :)
 
Nouveau WRInaute
Bon, après des mois de recherches et de croisements d'informations multiples, voici mon début de fichier htaccess définitif :

RewriteEngine on
RewriteCond %{HTTP_HOST} ^monsite.com$
RewriteRule ^(.*) http://www.monsite.com/$1 [QSA,L,R=301]
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ (/.*)?/index.(htm|html|php|asp|shtml)
RewriteRule ^(.*)index.(htm|html|php|asp|shtml)$ /$1 [R=301,L]
ErrorDocument 404 /erreur404.htm

Toutes mes pages n'existant plus sur mon site faisaient, jusqu'à présent, l'objet d'une ligne, dans htaccess, comme celle-ci :

redirect 301 /pagenexistantplus.htm http://www.monsite.com/index.htm {solution 1}

Ma dernière question (c'est promis) est encore et toujours :

Dois-je plutôt, désormais, écrire :

redirect 301 /pagenexistantplus.htm http://www.monsite.com/ {solution 2}

ou même

redirect 301 /pagenexistantplus.htm http://www.monsite.com {solution 3} ?

Je vous en prie, dites-moi quelle est la bonne écriture, solution 1, solution 2, ou solution 3 ?

Merci merci merci ! :)
 
WRInaute accro
en fait tu tourne autour du même problème avec différentes histoires. Tu hésite entre :

* avec ou sans "index.html" ou "index.php" ou "index.asp" etc ...
* "/" à la fin ou pas

La vrai réponse c'est on s'en fou complètement mais pour ce qui est de ton accueil il faut choisir une bonne fois pour toute et utiliser cette convention partout (htacces, liens, publicité, backlink, etc ....)

Dans le principe "http://www.example.com/" est l'url la plus répandue historiquement pour désigner l'accueil. Il y a un "/" a la fin car c'est un dossier (la racine) comme pour les sous dossiers "http://www.example.com/dossier/" le fichier "index.truc" est un fichier particulier qui est servi par défaut si l'url ne comprend pas de nom explicite de fichier dans un dossier.

Maintenant avec les règles de réécriture et un accès au fichier de conf du serveur tu peux en revanche faire tout ce qui te passe par la tête ...

Si jamais tu as utilisé par le passé autre chose ou différents trucs combinés il convient de renvoyer toutes les urls pas retenues, mais en double, en 301 vers celle qui sera ta norme.
 
Discussions similaires
Haut