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.

mosg
la source

Réponses:

9
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Ernest Mueller
la source
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>
Warner
la source