Bonjour,
J'ai récemment migré mon site en HTTPS.
J'ai utilisé ce code dans le .htaccess pour rediriger toutes les URLs HTTP vers les nouvelles adresses HTTPS :
Options +FollowSymlinks
RewriteEngine on
## Redirection 301 : HTTP vers HTTPS
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.monsite.com/$1 L,R=301]
Résultats :
http://www.monsite.com/page1
me renvoie vers
https://www.monsite.com/page1.html
L'extension .html est ajoutée dans l'URL HTTPS de destination...et je ne comprend vraiment pas pourquoi.
En testant le code sur[ https://htaccess.madewithlove.be/
Tout marche correctement...
Est-il possible que ce soit un problème de configuration du serveur apache ? (le site est sur un hébergement mutualisé)
Qu'en pensez-vous ?
Merci d'avance
Redirection HTTPS - mauvaise URI destination
Related questions
- Connexion à mon compte client
150849
13.02.2019 09:51
- Serveur non sécurisé, celui-ci ne supporte pas FTP sur TLS
125002
03.09.2018 14:46
- reCAPTCHA erreur pour le propriétaire du site : clé de site non valide
109463
14.02.2019 16:17
- [FAQ] Comment mettre à jour mon site pour supporter Apache 2.4 ?
96821
28.07.2017 11:39
- Passage en php 7.4
95962
30.06.2020 05:05
- Augmenter taille PHP Post Max Size sur mutualisé ?
90087
04.12.2019 21:52
- The requested URL / was not found on this server
89336
02.03.2017 18:25
- NextCloud sur mutualisé
89202
07.04.2017 08:42
- Deploy d'un projet Node JS
89176
12.10.2016 20:18
- Ce site est inaccessible Impossible de trouver l'adresse DNS du serveur
89118
16.10.2016 16:24
Bonjour,
Est ce pareil en activant le hsts ?
Il faut ajouter ceci dans le .htaccess
# forcer les connexions en https pendant 180 jours
Header always set Strict-Transport-Security "max-age=15552001; includeSubDomains;"
Si c'est un CMS (wordpress, Joomla, etc..) généralement on peut ajouter manuellement le hsts dans le .htaccess mais après il vaut mieux activer le https dans l'interface admin et laisser le CMS gérer.
Il faudrait aussi l'URL du site pour vérifier..
Merci beaucoup, en activant le HSTS, les redirections vers HTTPS marchent correctement.
https://www.salon-sublim-archiac.frSite
Cependant, j'avais également en place une redirection vers www. Et dans ce cas là, j'ai toujours le problème du ".html" qui se rajoute dans l'URL HTTPS de destination...
.htacces mis à jour avec HSTS :
Header always set Strict-Transport-Security "max-age=15552001; includeSubDomains;"
Options +FollowSymlinks
RewriteEngine on
## Redirection 301 : HTTP vers HTTPS
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.1archiac.fr/$1archiac.fr/$1 [L,R=301]
## Redirection 301 : sans www vers www (ANTI Duplicate Content)
RewriteCond %{HTTP_HOST} ^1archiac.fr$archiac.fr$
RewriteRule ^(.*)$ https://www.1archiac.fr/$1archiac.fr/$1 [L,R=301]
Résultats : les requêtes
https://monsite.com/page1
et
http://monsite.com/page1
me renvoient toujours vers
https://www.monsite.com/page1.html
J'ai essayé de regrouper ainsi :
## Redirection 301 : HTTPS et WWW
RewriteCond %{SERVER_PORT} 80 [OR]
RewriteCond %{HTTP_HOST} ^1archiac.fr$archiac.fr$
RewriteRule ^(.*)$ https://www.1archiac.fr/$1archiac.fr/$1 [L,R=301]
Mêmes résultats...
Quel est le contenu complet du .htaccess?
Dans le fichier /www/.htaccess as-tu mis au tout début :
> Options -Indexes
> Options -Multiviews
```text Voici le contenu complet de mon .htaccess :
(la redirection des différents index.html index.php est un bout de code que j'avais récupéré sur le net, mais je ne suis pas certaine que ce soit adapté à ma situation)
Header always set Strict-Transport-Security "max-age=15552001; includeSubDomains;"
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.org/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^example.org$
RewriteRule ^(.*)$ https://www.example.org/$1 [L,R=301]
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ (/.*)?/index.(htm|html|php|asp)
RewriteRule ^(.*)index.(htm|html|php|asp)$ /$1 [R=301,L]
Options -Indexes
ErrorDocument 404 /404.html
# Enable expirations
ExpiresActive On
# Default directive
ExpiresDefault "access plus 1 month"
# Favicon
ExpiresByType image/x-icon "access plus 1 year"
# Images
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
# CSS
ExpiresByType text/css "access 1 month”
# Javascript
ExpiresByType application/javascript "access plus 1 year"
```
Oui, j'avais déjà testé l'option **Options -Multiviews**.
Je viens de retester , en tout début de fichier.
Les redirections marchent comme souhaitées :
Ces requetes renvoient bien vers
Par contre, gros problème :
La page des destination s'affiche sous la forme de ma page 404.
Pourquoi mes messages sont-il marqués en tant que spam par la communauté ?
Je m'excuse si j'ai posté quelque chose qu'il ne fallait pas, je ne vois pas trop quoi à part le lien vers le site je suppose..
Bonjour,
surement à cause des nombreux liens vers le même site.
Note : pour donner un lien d'exemple il est préférable d'utiliser example.org qui prévu à cette effet.
Cordialement, janus57
D'accord merci, donc j'aurai dû modifier le code de mon .htaccess alors avant de poster...
Bonjour,
non pour le code du .htaccess ça gène pas (et c'est même mieux d'avoir le vrai code), mais c'est le fait de le répéter les même URL dans les premiers messages, du coup le système de sécurité peu détecter ça comme un comportement de robot.
Cordialement, janus57
Merci pour vos explications.
Du coup j'ai modifié tous les liens...
Après de multiples tentatives, je suis arrivée à rectifier le tir au niveau des redirections.
Voici le code du fichier .htaccess :
(étant donné que l'activation du HSTS ne résolvait pas complètement le problème, je l'ai désactivé)
Options +FollowSymlinks
RewriteEngine on
# Redirection 301 : index vers nom de domaine
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ (/.*)?/index.(htm|html|php|asp)
RewriteRule ^(.*)index.(htm|html|php|asp)$ https://www.example.org [L,R=301]
# Redirect external .html requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.html([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.html$ https://www.example.org/$1 [L,R=301]
# Resolve .html file for extensionless html urls
RewriteRule ^([^/.]+)$ $1.html [L]
# Redirection 301 : HTTP vers HTTPS
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.org/$1 [L,R=301]
# Redirection 301 : sans www vers www
RewriteCond %{HTTP_HOST} ^example.org$
RewriteRule ^(.*)$ https://www.example.org/$1 [L,R=301]
# Redirection page 404
ErrorDocument 404 /404.html
Avec ce code, la requête :
http://example.org/page1
renvoie vers (R=301) : https://www.example.org/page1.html
qui renvoie vers (R=301) : https://www.example.org/page1
et la requête :
http://example.org/index.html
renvoie vers (R=301) : https://www.example.org
Tout semble fonctionner, mais j'aimerai avoir votre avis.
Le fait d'avoir 2 redirections cumulées dans le 1er exemple, est-il préjudiciable pour l'indexation et le référencement des pages cibles en HTTPS ?
Le but initial du HSTS est de dire aux navigateurs web que votre site doit toujours être visité en HTTPS. Donc si votre site est 100 % HTTPS, autant le remettre...
ça évitera aussi aux navigateurs webs (et donc aux visiteurs) de subir une double redirection...
Ce n'est pas génial... Mais google devrait s'en accomoder...
Bonjour,
sinon pourquoi se casser la tête à vouloir retirer les extensions des pages ?
Cordialement, janus57
un code "combiné" comme ça dans le .htaccess ne règle pas le problème ?
RewriteCond %{SERVER_PORT} 80 [OR]
RewriteCond %{THE_REQUEST} ^(.+)\.html([#?][^\ ]*)?\ HTTP/ [OR]
RewriteCond %{HTTP_HOST} ^monsite\.com$ [NC]
RewriteRule ^(.*) https://www.monsite.com/$1 [QSA,L,R=301]
J'ai réactivé le HSTS pour des tests, je me retrouve avec des redirections de ce type :
Requête : http://www.example.org/page1
renvoie vers (redirection interne 307) https://www.example.org/page1
Requête : http://example.org/page1
renvoie vers (redirection interne 307) https://example.org/page1
qui renvoie vers (R=301) https://www.example.org/page1.html
qui renvoie vers (R=301) https://www.example.org/page1
La redirection interne 307 est-elle vue par les moteurs de recherche ?
Car dans la 1ère requête, il serait mieux d'avoir une redirection 301 non ? en terme d'indexation du site en HTTPS...
Oui pourquoi...? je m'en souviendrai
Merci pour ce code Buddy, je testerai cela.
Le site comporte 5 pages et en plus elles sont dans un sitemap... https://www.1archiac.fr/sitemap.xmlarchiac.fr/sitemap.xml donc donc Google a déjà lu le sitemap (surtout si vous l'avez mis dans le compte Google webmaster tools et va indexer les pages en https d'ici 10 jours)
L indexation suivra parfaitement.
Sinon les redirections 307 sont générés par les navigateurs Web
Google Vera la 301.
Bonjour @ChristelleS1,
Pourquoi écrire en abrégé "Sh" sur les tarifs, alors qu'il y a toute la place pour écrire en entien le mot "Shampoing" ?
Oui la propriété HTTPS du site a été ajoutée dans Google Search Console.

Mon problème concernant l'indexation est qu'actuellement toutes les pages HTTPS (hormis la page accueil) sont exclues de la couverture de l'index dans GSC.
La raison évoquée : L'URL envoyée n'a pas été sélectionnée comme URL canonique
J'imagine que cela est dû aux mauvaises redirections 301 qui me renvoyaient vers les URLs en .html.
Selon vous, faut-il renvoyer ces pages HTTPS pour indexation ? ou laisser Google découvrir lui-même les nouvelles redirections HTTP->HTTPS ?
SI Google voit bien la 301 avec le HSTS, c'est parfait, merci !
Effectivement, cela est dû à une recopie d'un flyer.
Rectifié, merci ^^
Je parlais de Google webmasters tools
https://www.google.com/webmasters/tools/home?hl=fr
Le sitemap a été déclaré ?
Non, ce n'est pas ça.
Il faut envoyer le sitemap avec les liens https et attendre 10 jours environ.
Oui le sitemap a été envoyé le 5 mai et traité le 9 mai.
Sur la page **_Explorer comme Google_** entre les principales pages de ton site.
Et coche "Indexation l'URL et les pages liées"
Il faut attendre une 10aine de jours généralement..
Sinon tu peux tester la méthode de gaston, mais pas certains que ça marche..
Bonjour @Buddy et @ChristelleS1.
Cela permet de forcer GOOGLE à lire et enregistrer chaque page qui lui est présentée.
C'est ce que je fais avec les nouvelles pages que je rajoute sur mon site.
Je suis d'accord que c'est terriblement efficace pour les nouvelles pages (prise en compte en quelques dizaines de minutes) mais pour une page indexée en http la faire passer en https j'ai un doute ...
Bonsoir @Buddy, quand j'ai passé mon site en HTTPS, j'ai déclaré un nouveau site : celui en HTTPS et je l'ai forcé à relire les pages.
J'avais fais cette manip pour 1 seule page au tout début de la migration HTTPS
(page d'index : "Indexation l'URL et les pages liées")
Je peux refaire la demande à Google, mais faut-il répéter cette manip pour toutes les pages ?
Etant donné que la page d'index contient les liens vers toutes les autres pages du site.
Il te suffit de voir dans tes LOGS, si 1h après, " 1XX.googlebot.comXX.googlebot.com " est passé par toutes les pages.
Ok merci beaucoup, je vais surveiller ça
Oui, surtout qu'il n'y en a que 5. ;)
Pas faux ! Mais peut-être que ca bombarbe Google de demandes répétées...
D'abord, regarder les LOGS. :)
Je reviens vers vous pour avoir votre avis sur le déroulement de l'indexation des pages HTTPS.
Voici les opérations effectuées :
**14/05 : Demande d'indexation de la page d'accueil du site**
(Explorer comme Google -> Indexation URL et pages liées)
==> En vérifiant les logs, sauf erreur de ma part, googlebot n'a crawlé que la page d'accueil (/)
**16/05 : Demande d'indexation de toutes les autres pages (5 pages)**
(Explorer comme Google -> Indexation URL)
==> En vérifiant les logs, googlebot a bien crawlé toutes les pages demandées
`"GET /coiffure HTTP/1.1" 200 ........ "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"`
`"GET /esthetique HTTP/1.1" 200 ........ "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"`
`"GET /le-salon HTTP/1.1" 200 ........ "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"`
`"GET /contact HTTP/1.1" 200 ........ "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"`
`"GET /mentions HTTP/1.1" 200 ........ "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"`
**21/05 : Contrôle état d'indexation des pages HTTPS**
Actuellement, en utilisant la commande "site:"
- Seulement 3 pages en HTTPS sont dans les résultats (/, /le-salon et /coiffure).
- Les autres pages sont toujours en HTTP.
- + 4 résultats omis par Google
Dans Google Search Console : Couveture de l'index :
- 1 page valide (envoyée et indéxée) :
Page d'accueil (/) : dernière exploration (14 mai)
- 5 pages exclues (L'URL envoyée n'a pas été sélectionnée comme URL canonique)
(voir image)
La dernière exploration de ces pages exclues date du 3 mai (ou du 8 mai pour certaines pages). Alors que googlebot a crawlé ces pages le 16 mai...
Est-ce normal selon vous ?
Pourquoi GSC m'indique 5 pages exclues alors que certaines pages HTTPS ressortent dans les résultats de recherche ?
La dernière exploration du sitemap remonte au 9 mai, soit avant que les redirections 301 vers les URLs corrigées soient mises en place. Faut-il que je renvoie le sitemap à Google une nouvelle fois ?
C'est mon avis personnel mais je pense qu'il faut arrêter de faire une fixation sur le https pour votre site...
Vous n'êtes pas une banque et vous redirigez déjà vos visiteurs vers le https donc c'est bon. (vous auriez pu laisser le hsts mais bon..)
Google indexe les sites à son rythme..
Pour le HSTS, je prévois bien de l'activer prochainement.
Ok, je vais arrêter ma fixation et laisser Google faire son job tranquillement, je voulais juste savoir si la procédure était bonne.
Merci beaucoup pour votre aide Buddy et Gaston_Phone
ça a été bien fait. Il faut juste laisser du temps à Google (et aux autres moteurs de recherche) ;)