Làm cách nào để chuyển hướng HTTP sang HTTPS trên cùng một httpd?


10

Đây là những gì tôi đã có:

  • CentOS 5.4 (32-bit)
  • đã cài đặt Apache httpd (Phiên bản máy chủ: Apache / 2.2.11 (Unix))
  • mod_rewrite đã trình bày

Câu hỏi: làm thế nào để chuyển hướng đơn giản http://site.com sang https://site.com không sử dụng Virtualhost định nghĩa?

PS: đã cố gắng tìm trong các câu trả lời sau trên SF, nhưng không tìm thấy giải pháp hay.

Cảm ơn.

Câu trả lời:


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

2
RewriteRule ^(.*) https://%{HTTP_HOST}$1có ý nghĩa hơn với tôi
cregox

Đó không phải là vòng lặp vô hạn trên bạn?
Ernest Mueller

Không, chỉ cần thử nghiệm nó. Thậm chí đó là cách nó được khuyên theo các tài liệu - hãy nhìn vào phần cuối của nó.
cregox

1
Tôi nhận được một vòng lặp vô hạn bằng cách sử dụng Apache 2.4.10, triển khai trên Heroku, khi tôi chèn các lệnh đó vào .htaccess của mình. Và biến thể được đề xuất bởi Cawas kỳ quặc URL của tôi. Tôi đã thử một nhóm lệnh khác: RewriteCond %{HTTP:X-Forwarded-Proto} !httpsRewriteRule ^/?(.*) https://%{SERVER_NAME}%{REQUEST_URI}- hoạt động trên Chrome và Firefox, nhưng không thành công trên Safari và Opera. Thật thú vị, nếu tôi thực hiện ba dòng trên và bỏ qua RewriteEngine Ontôi không còn nhận được vòng lặp vô hạn, nhưng nó vẫn thất bại trong Safari và Opera (và hoạt động trong Chrome và Firefox).
Purplejquet

2

Bạn có thể sử dụng mod_alias và Redirect dựa trên thư mục. Các tài liệu được liên kết xác định các chi tiết bổ sung.

<Directory /path/to/site>
   Redirect /service https://foo2.example.com/service 
</Directory>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.