Redirection avec htaccess après migration vers https

Eléphant du PHP | 192 Messages

11 août 2017, 13:11

Bonjour, je viens de migrer mon site de http vers https.
J'ai alors fais une redirection 301 via mon htaccess de la manière suivante :

Code : Tout sélectionner

RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Mes pages sont donc bien redirigées, cependant ne comprenant pas bien le code en htaccess je ne comprend pas pourquoi ma page d'accueil affiche :

https://www.nomdusite.com/nomdusite/index.php

au lieu de :

https://www.nomdusite.com/

Car en effet cela est beaucoup plus agréable d'afficher ce dernier url.
Aussi dois-je garder [R=301,L] ou dois-je utiliser seulement [R,L] (il n'y a pas beaucoup d'infos à ce sujet) car il semblerait que cela soit nécessaire afin d'indiquer aux robots des moteurs de recherche que le changement est permanent ?

Merci beaucoup pour votre aide et vos conseils.
Cadeaux personnalisés d'après photos, gravure...
http://www.cadeauxplaisir.com/

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7343 Messages

11 août 2017, 14:38

Bonjour,

Le code du htaccess que tu nous fourni indique uniquement de renvoyer les adresse http://... vers https://...

Il n'y a donc rien qui explique le fait que tu ait l'apparition d'un répertoire après ton nom de domaine.
Es-tu sûr que tu as bien déposé tes fichiers à la racine de ton nom de domaine et pas dans un répertoire /nomdusite/ ?

Pour les flags R et L, tu peux les conserver tel quel. Si tu met juste R,L sans préciser 301, alors ça sera une redirection 302 qui indique aux moteurs que c'est juste une redirection temporaire, ce qui n'est pas le cas pour toi, c'est bien une redirection permanente donc 301.
L'énorme avantage de la redirection 301 est pour le référencement où Google va alors remplacer tes anciennes urls par les nouvelles en conservant leur classement. Si tu met des 302 (ou que tu ne mets rien), alors Google va indexer les 2 versions de la page sans forcément cumuler leur force de référencement.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 192 Messages

12 août 2017, 13:46

Merci beaucoup pour ces répondes claires et précises.
Concernant l'apparition du répertoire, mes fichier concernés sont bien à la racine. Du coup je vais aller voir du côté de mon hébergeur car c'est surprenant étant donné que lorsque je suis en http l'URL s'affiche normalement. C'est seulement lorsque j'affiche le site en https que cela s'affiche.
Au pire si je ne trouve pas de réponse au niveau de mon hébergeur je t'enterais de modifier le lien depuis le htaccess grâce à une réécriture du genre :

Code : Tout sélectionner

RewriteCond %{RESQUEST_URI} (nomdusite\index\.php) RewriteRule ^(.*)$ https://nomdusite.com/ [R=301,L]
(pas encore testé, surement à modifier)

Encore merci, bonne journée.
Cadeaux personnalisés d'après photos, gravure...
http://www.cadeauxplaisir.com/

Mammouth du PHP | 860 Messages

12 août 2017, 14:33

peut-être :
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}$1 [R=301]

ou peut-être :
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301]

Eléphant du PHP | 192 Messages

13 août 2017, 16:58

je vais essayer ceci merci beaucoup!
Cadeaux personnalisés d'après photos, gravure...
http://www.cadeauxplaisir.com/

Eléphant du PHP | 192 Messages

22 août 2017, 18:56

Bonjour, merci pour cette aide. J'ai enfin pus tester ces solutions mais sans succès. Du coup je suis allé voir du côté de mon hébergeur et il y a en effet un second htaccess non pas celui qui se trouve à la racine de mon site mais qui se trouve à la racine de mon serveur. J'ai donc essayé différentes écritures toujours sans succès et pourtant il semblerait que je dois changer un élément ici pour avoir l’effet escompté qui je le rappel concernant le fait d'avoir un affichage de type :
https://www.nomdusite.com/
au lieu de :
https://www.nomdusite.com/nomdusite/index.php

Voici mon code :

Code : Tout sélectionner

Options +FollowSymlinks RewriteEngine on RewriteCond %{HTTP_HOST} ^(www.)?nomdusite.com$ RewriteCond %{REQUEST_URI} !^/nomdusite/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /nomdusite/$1 RewriteCond %{HTTP_HOST} ^(www.)?nomdusite.com$ RewriteRule ^(/)?$ nomdusite/index.php [L]
Cadeaux personnalisés d'après photos, gravure...
http://www.cadeauxplaisir.com/