私は既存のcodeigniter(v2.1.4)アプリケーションでhttps/sslを追加しようとしています。Codeigniter 2.x SSLリダイレクトループ
私はwebfactionホスティングで働いています。通常のsslセットアップの方法には、ホストダッシュボードに第2のWebサイトレコードを追加することが含まれます。これはhttp://をhttps://にリダイレクトし、.htaccess(明快にするために.htaccess_Bと呼ぶ)ファイルを使用します。 CodeIgniterのアプリケーションが含まれているオリジナルのウェブサイトレコードがこの.htaccessファイル(.htaccess_A)がSSL証明書がインストールされ、正しく設定されている
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|javascript|images|robots\.txt)
RewriteRule ^(.*)$ /index.php?/$1 [L]
ファイルが含まれ
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
:このウェブサイトレコードにのみ、この.htaccessファイルが含まれていますウェブホストの指示に従って。私はthisメソッド(上の答え)を試しましたが、私はリダイレクトループに固執しています。 config.phpの中
マイ設定変数:
$config['base_url'] = '';
$config['enable_hooks'] = TRUE;
$config['cookie_secure'] = TRUE;
hooks.php
$hook['post_controller_constructor'][] = array(
'function' => 'redirect_ssl',
'filename' => 'ssl.php',
'filepath' => 'hooks'
);
と私のssl.php
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
function redirect_ssl() {
$CI =& get_instance();
$class = $CI->router->fetch_class();
$exclude = array(''); // add more controller name to exclude ssl.
if(!in_array($class,$exclude)) {
// redirecting to ssl.
$CI->config->config['base_url'] = str_replace('http://', 'https://', $CI->config->config['base_url']);
if ($_SERVER['SERVER_PORT'] != 443) redirect($CI->uri->uri_string());
} else {
// redirecting with no ssl.
$CI->config->config['base_url'] = str_replace('https://', 'http://', $CI->config->config['base_url']);
if ($_SERVER['SERVER_PORT'] == 443) redirect($CI->uri->uri_string());
}
}
`
私が試しました.hの名前を変更するtaccessファイルを元のウェブサイトレコード(.htaccess_A)に追加し、base_urlにhttps://を追加して空きなしにします。私はリダイレクトループに
を立ち往生続けるhttps://mydomainhere.com/ネット::クロム コンソールでERR_TOO_MANY_REDIRECTS
任意のアイデアをGET!お使いの設定で
おかげ
は彼らと一緒にチケットを開いてみ。私はPHPに精通していませんが、先週webfactionでdjangoサイトをリダイレクトしました。同じアプローチ.htaccessファイル。彼らはそれをチェックし、それを私のブラウザのキャッシュのためにsugestedした。私はキャッシュをクリアした後、それは働いた。彼らはかなり役に立ちます。 – ionescu77