2015-09-15 14 views
5

Sto provando a forzare https tramite htaccess e sto ottenendo un errore di "reindirizzamenti troppi". Di seguito è quello che sto usando per provare a realizzare questo.Reindirizzamento a HTTPS restituisce errore "troppi reindirizzamenti"

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] 

Qualche idea su come posso realizzare questo o perché questo non sembra funzionare?

Modifica: ho seguito le risposte da qui Force https://www. for Codeigniter in htaccess with mod_rewrite che sembra causare il ciclo di reindirizzamento per me. Quando rimuovo questa parte:

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

Il ciclo di reindirizzamento scompare; tuttavia non sta reindirizzando a https.

+0

possibile duplicato del [https Forza: // www. per Codeigniter in htaccess con mod \ _rewrite] (http://stackoverflow.com/questions/8503663/force-https-www-for-codeigniter-in-htaccess-with-mod-rewrite) – RiggsFolly

+0

Mi sono imbattuto nel post sopra prima di postare questo. Ho provato ad usare il consiglio in quel post, che è quello che sembrava causare il loop di reindirizzamento. – Mike

risposta

1

Come menzionato da RiggsFolly, c'è un problema con l'affermazione, ma se questo non funziona, si potrebbe provare a forzare nel tag 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

Se non riesco a farlo funzionare in htaccess, sto per dare una possibilità. Grazie. – Mike

14

non posso dire con certezza se questo è collegato a (o alcuni) provider di hosting, ma nessuna delle soluzioni ha funzionato per me. Coz di restrizione del provider di hosting, non ho potuto ottenere la versione di apache tranne che era 2.x.

Questo è ciò che ha fatto, forse utile a qualcuno:

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