Rewrite apache et https

Bonjour à tous,

Je viens vous voir car j’ai un problème ! ( quelle surprise! )

Alors voila j’administre un forum photo et je me heurte à un problème lors de la mise en place du https avec apache.

Il faudrait que celui-ci fonctionne en cohabitation avec le http, mais le problème est que j’ai des liens en durs avec du http. Donc mon navigateur râle car il y a du contenu non sécurisé dans la page.

Pour solutionner le problème j’ai pensé au rewrite apache, mais “s’marche pow” :frowning:

Voici ce que j’ai tenté :

  • Dans ma conf apache non crypté, je détecte les contenus ayant pour referer monsite en https
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^https://www\.monsite\.fr* [NC]
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
  • Dans ma conf apache crypé, je détecte les contenus en http et le transforme en https comme ça :
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

ou comme ça :

RewriteEngine On
RewriteRule ^http://(.*) https://%1

Mais rien y fais ça tombe pas en marche :frowning:

Je précise que :
- Il est difficilement envisageable d’aller modifier toutes les adresses en dures (le forum à + de 10ans et un contenu à … ralonge se qui à tendance à faire planter grep/sed and co :slight_smile:)
- Le site n’a pas vocation à être 100% https pour le moment (ne me le proposer pas)
- Je n’est plus de grigri et mon marabou ne répond plus au téléphone … heu non rien … oublié ça ^^

Merci d’avance au(x) contributeur(s) qui seront peut-être m’éclairer :slight_smile:

Hello,

Personne n’est inspiré ?

Hello,

C’est pas un problème à gérer au niveau d’Apache mas au niveau de ton code directement.

Tu pourras mettre toute les redirection que tu voudras, la connexion devra se faire en http avant d’être redirigé, ton navigateur gueulera du coup.

Sur ton code il ne faut pas d’URL absolut que du relatif, le navigateur fera le reste du travail…

En ce qui concerne ta conf, pour ton vhost en 80 tu peux tout simplement mettre :

RewriteEngine On RewriteCond %{HTTP_REFERER} ^https RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI}

Sur ton vhost en 443 tu enlève ce que tu à mis ça ne sert à rien hors mis faire une boucle :slight_smile:

J’ai fais la syntax de tête mais tu peux la valider avec un apachectl configtest.

Pour vérifier si c’est ok (à vérfiier la syntax de la commande, de tête également) :

Et tu devrais obtenir une 301 (si tu sais pas lire le résultat tu peux le copier ici :slight_smile:

Hey,

C’est bien ce que je craignais :confused: il va falloir recoder 2-3 trucs pour que tout soit parfais.

Concernant la commande curl elle me sort un 302 ce qui est bon, mais effectivement le navigateur n’aime pas pour autant :confused:

Merci pour ta réponse :slight_smile:

Essaye de mettre ta rewrite en 301 :

T’être que le navigateur apprécia mieux une fois en cache mais je pense que non…