Comment rediriger HTTP vers HTTPS sur le même httpd?


10

Voici ce que j'ai:

  • CentOS 5.4 (32 bits)
  • installé Apache httpd (version du serveur: Apache / 2.2.11 (Unix))
  • mod_rewrite présente déjà

Question: comment rediriger le simple http://site.com vers https://site.com sans utiliser VirtualHost définit?

PS: essayé de trouver dans les réponses ultérieures sur SF, mais ne trouve pas de bonne solution.

Merci.

Réponses:


9
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

2
RewriteRule ^(.*) https://%{HTTP_HOST}$1est plus logique pour moi.
cregox

Cette boucle infinie ne sera-t-elle pas pour vous?
Ernest Mueller

Non, je viens de le tester. C'est même comme cela est conseillé dans les documents - regardez à la fin.
cregox

1
J'obtiens une boucle infinie en utilisant Apache 2.4.10, déployant sur Heroku, lorsque j'insère ces commandes dans mon .htaccess. Et la variante suggérée par Cawas modifie étrangement mon URL. J'ai essayé un autre ensemble de commandes: RewriteCond %{HTTP:X-Forwarded-Proto} !httpset RewriteRule ^/?(.*) https://%{SERVER_NAME}%{REQUEST_URI}- qui fonctionne sur Chrome et Firefox, mais échoue sur Safari et Opera. Fait intéressant, si je prends les trois lignes ci-dessus et omis, RewriteEngine Onje n'obtiens plus la boucle infinie, mais elle échoue toujours dans Safari et Opera (et fonctionne dans Chrome et Firefox).
Purplejacket

2

Vous pouvez utiliser mod_alias et Rediriger en fonction du répertoire. Le document lié identifie des détails supplémentaires.

<Directory /path/to/site>
   Redirect /service https://foo2.example.com/service 
</Directory>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.