在整个CodeIgniter驱动的站点上强制HTTPS会创建请求循环...为什么?

时间:2011-11-09 18:05:39

标签: .htaccess codeigniter ssl https

我有一个非常基本的CodeIgniter设置,现在需要完全在SSL上运行。所以,我认为我需要通过一些.htaccess规则强制https,因为这似乎是最直观和直接的方法。这就是我的工作:

config:

$config['base_url'] = 'https://cooldomain.com';
$config['index_page'] = '';

htaccess的:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

#remove ugly index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1

结果是我在FireBug中收到了大量相同的GET请求,导致出现“空白”错误屏幕。

.htaccess之类的CI URI模式不会重定向吗?当然这必须有效吗?

2 个答案:

答案 0 :(得分:2)

不应该

RewriteCond %{S} off

实际上是

RewriteCond %{HTTPS} off

答案 1 :(得分:0)

因为我在谷歌搜索中得到的回答相当高,所以我会回答这个问题。

从评论中读到,似乎是网络服务器前面的负载均衡器。发生这种情况时,您也可以检查以下内容,看看是否存在https连接:

RewriteCond %{HTTP:X-Forwarded-Proto} =http