Bonjour,
Je passe par une SSL Gateway pour mon domaine qui redirige sur mon VPS, et je veux donc forcer le HTTPS de mon site. Mais lorsque je mets les deux lignes suivantes dans mon .htaccess :
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://mondomaine.fr/$1 [R=301,L]
, le site ne s'affiche plus (trop de redirections c'est marqué).
Je ne vois pas trop d'où peut venir le pb... Des solutions ?
Erreur connexion SSL - Trop de redirections suite au HTTPS
Related questions
- Ssh_init: Host does not exist
23874
13.11.2017 01:40
- Code d’erreur : DLG_FLAGS_SEC_CERT_CN_INVALID ?
22945
14.08.2018 09:32
- LetsEncrypt et erreur DNS A / AAAA
21585
16.04.2019 15:34
- SSL Cloudflare chez OVH
20319
28.04.2017 09:51
- Err_too_many_redirects
20010
12.11.2017 15:36
- Certificat Let's encrypt
19743
21.08.2017 17:44
- Impossible d'activer le certificat SSL pour HTTPS
19497
07.01.2021 02:44
- Net::err_cert_common_name_invalid
18905
29.05.2017 08:20
- Prise en charge du protocole MQTT
17156
06.04.2017 13:57
Bonjour,
Ca peut être parce qu'il essaie de récrire l'url alors qu'elle est déjà en https. Pour éviter cela il faut ajouter un RewriteCond, je ne sais plus la syntaxe, pour qu'il ne fasse pas la réécriture d'URL si cette dernière est déjà en https. Recherche sur le web "réécriture url https" ou quelque chose comme cela.
PS : ah non, ce n'est peut-être pas cela, car le RewriteCond SERVER_PORT 80 fait justement ce teste.
J'ai testé avec ça : RewriteCond %{HTTPS} !=on mais idem... Le HTTP est bien renvoyé vers le HTTPS mais celui-ci n'affiche plus le site... (trop de redirections selon Safari)
Peux-tu poster l'URL de ton site?
Bah je ne pense pas trop avoir le droit... C'est indispensable ?
Mais je viens de tester de faire une redirection permanente via mon fichier de config apache, même issue !
Pour voir ce qui se passe lorsque je tape l'URL son mon navigateur.
Ok alors je viens de remettre la condition dans le .htaccess pour que vous voyez.
Effectivement, il y a un problème, moi sous Firefox, j'ai le message:
La page n’est pas redirigée correctement
Firefox a détecté que le serveur redirige la demande pour cette adresse d’une manière qui n’aboutira pas.
La cause de ce problème peut être la désactivation ou le refus des cookies.
Mais en fait c'est surement plutôt une mauvaise formulation de la redirection (ou de la réécriture d'URL) qui fait qu'il tourne en rond. Qu'est-ce que tu as mis exactement dans le .htacess?
Je n'utilise pas vraiment de cookies.
Voilà mon .htaccess :
Options +FollowSymlinks
Options -Indexes
RewriteEngine On
#RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://www.1futur.fr/$1futur.fr/$1 [R=301,L]
Je pense qu'il vaudrait mieux éviter de récrire en dur le nom de ton site, il vaudrait mieux l'écrire avec des symboles, ce n'est peut-être pas ça le problème, mais ce serait mieux (je vais voir la doc).
Sinon , il faut remettre le premier rewrite cond (enlever le #) , mais il faut mettre [OR] au bout non? Je vais regarder la doc et voir ce qu'il faut mettre exactement.
Sinon, avant de refaire les tests, il vaut mieux vider le cache de ton navigateur.
J'suis parti la dessus, mais idem...
Options +FollowSymlinks
Options -Indexes
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Idem pour ça...
Options +FollowSymlinks
Options -Indexes
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Voila! Merci c'est ce que je voulais dire, mais si cela ne marche pas mieux je ne vois pas. Il faut rechercher sur Internet, voir si la syntaxe est bonne, car dans la doc OVH ils font comme tu as fait (et pour cause : je suppose que tu as fait ce qu'ils proposent :) )
Essaie d'enlever le 301, à un moment dans la doc OVH ils disent de le mettre et à un autre moment ils ne le mettent pas, je ne sais pas à quoi il sert.
Sinon OVH propose aussi de faire cela avec une redirection : mettre RedirectPermanent à la place du RewriteRule, et après la syntaxe est la même. Mais si le problème vient de la syntaxe qui suit, on n'est pas plus avancé. D'autant plus que tu as essayé la redirection depuis Apache.
Bon bah j'ai essayé d'enlever le 301, j'obtient une Internal Server Error. Et avec la syntaxe RedirectPermanent, j'ai bine une redirection, mais que de la page d'accueil, si c'est une autre page, il reste en http... C'est donc pas trop ce que je veux. C'est quand même étrange cette affaire!
Je ne comprends pas non plus car tu fais ce qu'ils disent de faire, peux-tu remettre l'URL de ton site (car il a été enlevé, quand on est récemment inscrit sur le forum, les URL sont effacées) , mais si tu la remets j'aurai le temps de la renoter avant qu'elle soit enlevée.
1futur.frfutur.fr
Bon j'ai essayé avec un autre site sur le VPS, même problème... Cela vient surement de la configuration de apache et des hosts virtuels tu penses pas ?
Maintenant ton site marche chez moi, sous Firefox. Ca ne viendrait pas du cache de ton navigateur?
Le 301 veut dire redirection permanente !
Sinon
Essaye avec
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://tondomaine.tld/$1 [QSA,L,R=301]
et
`options +FollowSymlinks`
après
Et que signifie QSA, L et R ?
Oui c'est normal, j'ai enlevé la redirection car j'avais besoin qu'il soit visible...
http://www.urlrewriting.fr/ressources-commutateurs.html
Ce qui force la redirection c'est le R, que signifie le 301?
redirection 301 = définitive
302 = temporaire
http://www.abondance.com/actualites/20140606-13985-infographie-seo-redirections-301-302.html
Bonjour,
Active le hsts tu passeras forcément en https dès la 2eme page.
Header always set Strict-Transport-Security "max-age=15552001; includeSubDomains; preload"
Mets également un sitemap avec les liens en https les robots indexeront le site en https.
C'est résolu, il fallait en fait rajouter quelque chose dans les conditions du .htaccess:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Port} 80
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
Par contre je vois pas trop pourquoi ça ça marche et pas avant...
Ça a quelque chose à voir avec le passage par un proxi ou par un équilibreur de charge: bref par un serveur intermédiaire. La condition de réécriture de l'URL sera vraie si le port est 80 pour ce serveur intermédiaire et non pour le serveur d'origine. Si quelqu'un de OVH peut confirmer, merci.
Cela voudrait dire que tu passes par un serveur intermédiaire (un équilibreur de charge ou un proxi) et qu'il faut mettre ça pour que la condition de réécriture d'URL soit vraie.
Google est ton ami
Probablement c'est lié au Load Balancer
http://www.emind.co/how-to/how-to-force-https-behind-aws-elb/
Merci pour la solution ! Top !
> RewriteEngine On
> RewriteCond %{HTTP:X-Forwarded-Port} 80
> RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
Merci ! J'ai galéré pour trouver une solution qu fonctionne :-)
pourquoi se limiter au port 80? ce n'est pas indicatif du http :
```text
RewriteEngine On
## http -> https
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE,QSA]
```