2011-11-09 12 views
1

私はSSLで完全に実行する必要があるサイト用のかなり基本的なCodeIgniterセットアップを持っています。だから、私は、いくつかの.htaccessルールによってhttpsを強制する必要があると考えました。これは最も直感的で簡単なアプローチです。これは私が何をすべきかです:CodeIgniter駆動サイト全体にHTTPSを強制すると、リクエストループが作成されます...なぜですか?

設定:

$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パターンはありませんか?確かにこれは機能するはずですか?

+0

私のクラスタ化されたサーバープロバイダのロードバランサでSSLのように終わったようです。これは頭​​痛を引き起こす。 – tobefound

答えて

2

RewriteCond %{S} off

は実際に

RewriteCond %{HTTPS} off 

をすべきではありませんか?

+0

:)もちろん、元の編集。どうも。 – tobefound

+0

@tobefoundあなたの問題を解決したら、この答えを正しいとマークする必要があります=] – Relequestual

0

Googleの検索でこの回答が非常に高くなったので、私はこれに答えます。

コメントから読んで、Webサーバーの前にロードバランサがあるようです。この場合、https接続があるかどうかを次のように確認することができます。

RewriteCond %{HTTP:X-Forwarded-Proto} =http 
関連する問題