2013-07-14 27 views
7

Vì lý do quá dài và phức tạp để xâm nhập (nó liên quan đến nhiều lớp băng đỏ của công ty khiến người khác không mua chứng chỉ SSL ký tự đại diện mà tôi yêu cầu), tôi phải thiết lập miền để chuyển hướng tất cả các yêu cầu đến https://www.xyz.com - giao thức bảo mật với tên miền phụ www.Chuyển hướng tất cả URL httpS không phải www tới https://www.xyz.com qua htaccess

Vì vậy: http://xyz.com, http://www.xyz.comhttps://xyz.com nên TẤT CẢ chuyển hướng đến https://www.xyz.com.

.htaccess-fu của tôi yếu nhất và tôi dường như không làm được điều này. Lưu ý: lưu trữ là trên Media Temple nếu điều đó tạo nên sự khác biệt.

Cho đến nay, tập tin .htaccess của tôi trông giống như vậy:

RewriteEngine On 
RewriteCond %{HTTPS} !^on$ 
RewriteRule (.*) https://www.xyz.com/$1 [R,L] 

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

Cả http://xyz.comhttp://www.xyz.com được chuyển hướng đến https://www.xyz.com, vì vậy yay. Tuy nhiên, https://xyz.comkhông chuyển hướng đến https://www.xyz.com và vì thế ném một trang cảnh báo an ninh:

Đây có lẽ không phải là trang web mà bạn đang tìm kiếm!
Bạn đã cố truy xyz.com, nhưng thay vào đó bạn thực sự đạt đến một máy chủ tự nhận như www.xyz.com. Điều này có thể do cấu hình sai trên máy chủ hoặc do một cái gì đó nghiêm trọng hơn. Kẻ tấn công trên mạng của bạn có thể đang cố gắng giúp bạn truy cập phiên bản giả mạo (và có khả năng gây hại) của xyz.com.
Bạn không nên tiếp tục, đặc biệt nếu bạn chưa từng thấy cảnh báo này trước đây cho trang web này.

Bất kỳ trợ giúp nào giúp tôi vượt qua bướu cuối cùng này sẽ được đánh giá cao!

Trả lời

8

Điều này rất có thể. sử dụng mã sau đây. điều này làm việc cho tôi.

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI}$1 [R=301,L] 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}$1 
+0

Điều này giải quyết được vấn đề của tôi - cảm ơn @Junaid Atique – Andrew

+0

Điều này không hiệu quả đối với tôi, bởi vì tôi không có chứng chỉ của mình được bật cho cả www.mydomain.com AND mydomain.com theo câu trả lời của Scottie. – alieninlondon

3

Mặc dù vấn đề này rất cũ.

Nếu phát hiện thấy vấn đề này chính xác. Sau khi Mã được cung cấp ở đây không giúp được gì. Tôi đã thử và cố gắng.

một này làm việc cho tôi:

 RewriteCond %{HTTPS} off 
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
    RewriteRule .* https://%1%{REQUEST_URI} [R=301,L] 
    RewriteCond %{HTTPS} off 
    RewriteCond %{HTTP_HOST} !^www\. [NC] 
    RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
    RewriteCond %{HTTPS} on 
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
    RewriteRule .* https://%1%{REQUEST_URI} [R=301,L] 

Cố định các vấn đề đối với tôi mà không bất kỳ Loops hay các lỗi khác. Có lẽ nó sẽ giúp người khác.

+0

Giải pháp này đã hoạt động sau khoảng 20 phút thử nhiều mục, nó không hoàn hảo, nhưng mọi thứ khác đều hướng dẫn không http đến https://www.www.example.com mà tôi không thể tìm ra! – Barry