Wie leite ich HTTP auf demselben httpd zu HTTPS um?

10

Folgendes habe ich:

  • CentOS 5.4 (32-Bit)
  • installierter Apache httpd (Serverversion: Apache / 2.2.11 (Unix))
  • mod_rewrite präsentiert bereits

Frage: Wie leite ich einfach http://site.com zu https://site.com um, ohne VirtualHost-Definitionen zu verwenden?

PS: Ich habe versucht, in späteren Antworten auf SF zu finden, finde aber keine gute Lösung.

Vielen Dank.

mosg
quelle

Antworten:

9
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Ernest Mueller
quelle
2
RewriteRule ^(.*) https://%{HTTP_HOST}$1macht für mich mehr Sinn.
Cregox
Wird diese Endlosschleife nicht auf dich wirken?
Ernest Mueller
Nein, habe es gerade getestet. Es ist sogar so, wie es unter den Dokumenten empfohlen wird - schauen Sie sich das Ende an.
Cregox
1
Ich erhalte eine Endlosschleife mit Apache 2.4.10, das auf Heroku bereitgestellt wird, wenn ich diese Befehle in meinen .htaccess einfüge. Und die von Cawas vorgeschlagene Variante verstümmelt seltsamerweise meine URL. Ich habe einen anderen Befehlssatz ausprobiert: RewriteCond %{HTTP:X-Forwarded-Proto} !httpsund RewriteRule ^/?(.*) https://%{SERVER_NAME}%{REQUEST_URI}- der unter Chrome und Firefox funktioniert, unter Safari und Opera jedoch fehlschlägt. Interessanterweise RewriteEngine Onerhalte ich die Endlosschleife nicht mehr , wenn ich die drei obigen Zeilen nehme und weglasse , aber sie schlägt in Safari und Opera immer noch fehl (und funktioniert in Chrome und Firefox).
Purplejacket
2

Sie können mod_alias und Redirect basierend auf dem Verzeichnis verwenden. Das verknüpfte Dokument enthält zusätzliche Details.

<Directory /path/to/site>
   Redirect /service https://foo2.example.com/service 
</Directory>
Warner
quelle