shkyo Posté 3 Mars 2016 Posté 3 Mars 2016 Bonjour à tous, Je plante le décor en vitesse: le site web de ma boite est hébergé en mutualisé chez OVH, et on a pris l'option certificat SSL Quand on tape directement https://www.xyz.fr/ ça fonctionne bien, mais quand on tape www.xyz.fr ou xyz.fr la consultation du site reste en http... Et toutes les tentatives que j'ai faites de fichier .htaccess à la racine du site se termine TOUJOURS en erreur 500!! Quelqu'un a-t-il déjà eu (et résolu!) ce problème?? Merci d'avance...
Aenoa Posté 3 Mars 2016 Posté 3 Mars 2016 Bonjour, Si votre site est en PHP, ou du moins sa page d'accueil, l'on pourrait utiliser la globale $_SERVER avec l'argument HTTPS Si cette variable existe, c'est que l'utilisateur est en HTTPS. Si pas, ou qu'elle est à "off" (cas d'un serveur IIS), c'est du HTTP classique. <?php if(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != "off") { header("location: https://www.mon-site.com/"); } ?> Sinon, en HTACCESS, StackOverflow me suggère ceci: RewriteCond %{HTTPS} off # First rewrite to HTTPS: # Don't put www. here. If it is already there it will be included, if not # the subsequent rule will catch it. RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # Now, rewrite any request to the wrong domain to use www. RewriteCond %{HTTP_HOST} !^www\. RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] source: h**p://stackoverflow.com/questions/13977851/htaccess-redirect-to-https-www Toutefois, si l'utilisateur utilise un proxy, cela risque de faire une boucle de réécriture, les données étant envoyées en HTTP Plain/Text. Une solution annexe serait donc celle-ci: RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] source: h**p://stackoverflow.com/questions/26620670/apache-httpx-forwarded-proto-in-htaccess-is-causing-redirect-loop-in-dev-envir Je ne saurait te dire si c'est fonctionnel, j'utilise NGinx en tant que serveur web Mais il semble que la personne ayant eu un souci sur StackOverflow ai trouvé ce message comme réglant le problème. Cordialement,
shkyo Posté 3 Mars 2016 Auteur Posté 3 Mars 2016 Tout d'abord merci pour cette réponse rapide! J'avais oublié de préciser, le site est intégralement en HTML5/CSS3, aucun script n'est utilisé. J'ai testé les 2 propositions et j'ai toujours mon erreur 500... Je commence à me demander si OVH gère bien ce fameux fichier .htaccess! D'ailleurs, il y a à la racine un fichier .ovhconfig qui contient ceci (ce n'est pas moi qui l'ai écrit): app.engine=phpcgi app.engine.version=7.0 http.firewall=none environment=production container.image=default_image Perso j'ai essayé ça: RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.xyz.fr/$1 [R,L] ou encore ça: RewriteEngine On RewriteCond %{HTTP_HOST} ^xyz\.fr [NC] RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} Et toujours le même résultat... Erreur 500...
Aenoa Posté 3 Mars 2016 Posté 3 Mars 2016 Concernant le .ovhconfig, il s'agit d'un fichier permettant de modifier vos préférences sur le Manager d'OVH. Il est donc à conserver ! Pouvez-vous également essayer de ne mettre QUE le "RewriteEngine On" ? Cela me semble étrange, mais peut-être la réécriture d'uri n'est pas active. Sinon, ceci vient du site officiel OVH, en espérant que cela fixe le problème: RewriteEngine on Rewritecond %{HTTP_HOST} ^nom_domaine.tld$ Rewriterule ^(.*) https://nom_domaine.tld/$1 [QSA,L,R=301] ... Mais cela donnera probablement le même résultat. Tenez moi au courant ! Je continue à chercher d'éventuelles raisons à cette erreur 500. Peut-être le reste de votre fichier .htaccess ? Est-ce le seul contenu du fichier? Y a t-il d'autres données dans votre .htaccess ? Cordialement
Dan Posté 3 Mars 2016 Posté 3 Mars 2016 Tout simplement en mettant ceci au début de ton fichier .htaccess RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{SERVER_NAME}/%$1 [R,L] Si tu as toujours une erreur 500, poste ici ton fichier .htaccess
shkyo Posté 3 Mars 2016 Auteur Posté 3 Mars 2016 Il n'y a absolument rien d'autre dans le fichier que les quelques lignes de redirection... Je viens d'essayer vos 2 propositions: pas mieux... J'ai aussi essayé avec juste la ligne "RewriteEngine On", même résultat! Là ça devient bizarre à ce que je comprends...
Aenoa Posté 3 Mars 2016 Posté 3 Mars 2016 Peut-être un caractère d'échappement invisible? Pourriez-vous essayer de totalement supprimer le fichier .htaccess de votre site, le recréer, et lui remettre les valeurs indiquées par Dan ?
Dan Posté 3 Mars 2016 Posté 3 Mars 2016 Attention au fichier .htaccess... il ne faut l'éditer qu'avec un outil "pur ascii" , par exemple le bloc-note et le transférer en mode TEXT et non BINARY ! Windows a tendance à ajouter des caractères de fin de ligne (retour chariot) non compatibles avec Linux !
shkyo Posté 3 Mars 2016 Auteur Posté 3 Mars 2016 YES!!!! ça fonctionne enfin! Merci à vous deux pour votre aide précieuse! Donc je résume, voici la version qui fonctionne: RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L] Mais écris et sauvé avec le Notepad "de base", avant j'utilisais Notepad++ je ne pensais pas qu'il ne respectait pas le mode texte pur... Ouf, une bonne chose de faite, je galérais la-dessus depuis hier matin! Merci encore!
Dan Posté 3 Mars 2016 Posté 3 Mars 2016 Il faut TOUJOURS se méfier des éditeurs sous Windows... mais normalement Notepad++ peut sauver en "texte seul" sans problème. C'est ce que j'utilise tout le temps.
shkyo Posté 3 Mars 2016 Auteur Posté 3 Mars 2016 il y a 6 minutes, Dan a dit : Il faut TOUJOURS se méfier des éditeurs sous Windows... mais normalement Notepad++ peut sauver en "texte seul" sans problème. C'est ce que j'utilise tout le temps. C'est bien noté! Quand à Notepad++ je regarderais ma config à l'occasion, je ne l'utilise que pour ouvrir des fichier texte ou assimilés... Pour la programmation du site web, j'utilise Sublime Text 3, il a des fonctions super pratiques pour accélérer le code HTML!
informatique76 Posté 7 Mars 2017 Posté 7 Mars 2017 (modifié) Bonjour je viens de passer deux sites en https,tout les deux chez OVH....l hébergeur recommande de mettre ceci .. RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.votredomaine.fr/$1 [R,L] Modifié 7 Mars 2017 par informatique76 citation
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant