Bagaimana cara mengalihkan HTTP ke HTTPS di httpd yang sama?


10

Inilah yang saya dapatkan:

  • CentOS 5.4 (32-bit)
  • menginstal Apache httpd (Versi server: Apache / 2.2.11 (Unix))
  • mod_rewrite sudah hadir

Pertanyaan: bagaimana cara mengarahkan http://site.com sederhana ke https://site.com tanpa menggunakan definisi VirtualHost?

PS: mencoba mencari jawaban nanti di SF, tetapi tidak menemukan solusi yang bagus.

Terima kasih.

Jawaban:


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

2
RewriteRule ^(.*) https://%{HTTP_HOST}$1lebih masuk akal bagi saya.
cregox

Tidakkah itu loop tak terbatas pada Anda?
Ernest Mueller

Tidak, baru saja mengujinya. Bahkan seperti yang disarankan di bawah dokumen - lihat di bagian akhir.
cregox

1
Saya mendapatkan infinite loop menggunakan Apache 2.4.10, menggunakan Heroku, ketika saya memasukkan perintah-perintah itu ke .htaccess saya. Dan varian yang disarankan oleh Cawas anehnya mangelek URL saya. Saya sudah mencoba serangkaian perintah yang berbeda: RewriteCond %{HTTP:X-Forwarded-Proto} !httpsdan RewriteRule ^/?(.*) https://%{SERVER_NAME}%{REQUEST_URI}- yang berfungsi di Chrome dan Firefox, tetapi gagal di Safari dan Opera. Menariknya, jika saya mengambil tiga baris di atas dan menghilangkan RewriteEngine Onsaya tidak lagi mendapatkan infinite loop, tetapi masih gagal di Safari dan Opera (dan berfungsi di Chrome dan Firefox).
Purplejacket

2

Anda dapat menggunakan mod_alias dan Redirect berdasarkan direktori. Dokumen yang ditautkan mengidentifikasi detail tambahan.

<Directory /path/to/site>
   Redirect /service https://foo2.example.com/service 
</Directory>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.