web-dev-qa-db-fra.com

301 redirection vers www de non-www et index.html

Actuellement, la page d'accueil de mon site Web est accessible via ces URL:

www.example.com, example.com, www.example.com/index.html et example.com/index.html

J'essaie donc de configurer les redirections pour que example.com aille à www.example.com ET que www.example.com/index.html, www.example.com/index.html aille à www.example.com pour éviter les problèmes de contenu en double. J'ai essayé ceci dans le fichier . Htaccess:

RewriteEngine On
RewriteCond %{HTTP_Host} !^www\\.example\\.com$ [NC]
RewriteRule .? http://www.example.com%{REQUEST_URI} [R=301,L]
Redirect 301 /index.html http://www.example.com/

Mais j'ai reçu un message d'erreur indiquant qu'il y avait trop de redirections. De quoi ai-je besoin pour inclure ce fichier .htaccess afin de rediriger cette 301? J'ai aussi des sous-domaines comme fr.example.com, de.example.com Alors, dois-je également écrire des règles/codes de redirection 301 distincts dans leur fichier .htaccess?

2
Jane

Quelque chose comme celui ci-dessous gèrera la redirection www canonique: -

    RewriteEngine On
## canonical www 301 redirect   
    RewriteCond %{HTTP_Host} ^example.com$ [NC]
    RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

La meilleure règle pour réécrire et gérer vos différentes URL de page d'accueil varie en fonction de la plate-forme de site Web sur laquelle votre site Web est construit. Quelque chose dans le sens de cela peut fonctionner si: -

## rewrite and 301 index pages
    RewriteRule ^index\.(php|html?)$ http://www.example.com/ [R=301,L]
2
zigojacko