2015-09-15 41 views
5

Tôi đang cố gắng buộc https qua htaccess và nhận được lỗi "chuyển hướng quá nhiều". Dưới đây là những gì tôi đang sử dụng để cố gắng thực hiện điều này.Chuyển hướng đến lỗi trả về HTTPS "quá nhiều chuyển hướng"

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 

Bất kỳ ý tưởng nào về cách tôi có thể thực hiện điều này hoặc tại sao điều này dường như không hoạt động?

Chỉnh sửa: Tôi đã làm theo các câu trả lời từ đây Force https://www. for Codeigniter in htaccess with mod_rewrite dường như gây ra vòng lặp chuyển hướng cho tôi. Khi tôi xóa phần này:

RewriteCond %{HTTPS} !=on 
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

Vòng chuyển hướng biến mất; tuy nhiên nó không chuyển hướng đến https.

+0

thể trùng lặp của [Force https: // www. cho Codeigniter trong htaccess với mod \ _rewrite] (http://stackoverflow.com/questions/8503663/force-https-www-for-codeigniter-in-htaccess-with-mod-rewrite) – RiggsFolly

+0

Tôi thực sự đã xem qua bài viết ở trên trước khi đăng bài này. Tôi đã thử sử dụng lời khuyên trong bài đăng đó, đó là những gì dường như gây ra vòng lặp chuyển hướng. – Mike

Trả lời

1

Như đã đề cập bởi RiggsFolly, có một vấn đề với báo cáo kết quả, nhưng nếu đó là công việc doesnt, bạn có thể thử buộc nó trong thẻ head:

$use_sts = true; 

// iis sets HTTPS to 'off' for non-SSL requests 
if ($use_sts && isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') { 
    header('Strict-Transport-Security: max-age=31536000'); 
} elseif ($use_sts) { 
    header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'], true, 301); 
    // we are in cleartext at the moment, prevent further execution and output 
    die(); 
}`` 
+0

Nếu tôi không thể làm việc đó trong htaccess Im sẽ chụp ảnh này. Cảm ơn. – Mike

14

Tôi không thể nói chắc chắn nếu điều này là có liên quan đến một (hoặc một số) nhà cung cấp dịch vụ lưu trữ, nhưng không có giải pháp nào phù hợp với tôi. Coz hạn chế của nhà cung cấp hosting, tôi không thể có được phiên bản apache ngoại trừ nó là 2.x.

Đây là những gì đã làm, có thể hữu ích cho một ai đó:

RewriteEngine On 
RewriteCond %{ENV:HTTPS} !on 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
Các vấn đề liên quan