codeigniter ion auth https перенаправить бесконечный цикл

У меня проблема при попытке получить доступ к странице через https. Я использую Codeigniter и Ion Auth

Это мой конфиг:

$config['base_url'] = "http".((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "")."://".$_SERVER['HTTP_HOST'].str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);

Это мой файл.htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
Options +FollowSymLinks
RewriteBase /

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

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} (auth|login|pages)
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301]

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !(css|images|js|style)
RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301]
</IfModule>

<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule> 

Ошибка 310 (net::ERR_TOO_MANY_REDIRECTS): было слишком много перенаправлений.

Веб-страница по адресу https: //subdomain.domain.tld/auth/login привела к слишком большому количеству перенаправлений.

1 ответ

Вы перенаправляете на страницу без SSL, если пользователь заходит по https, который перенаправляет обратно на https:

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} (auth|login|pages)
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301]

Это отправляет пользователя https (который вызовет приведенный ниже Cond)

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !(css|images|js|style)
RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301]

это перенаправляет пользователя обратно на http, который будет перенаправлять его сюда до бесконечности

попробуйте это для вашего %{HTTPS} on состояние:

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !(css|images|js|style)
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301]

(обратите внимание на https в RewriteRule)

Другие вопросы по тегам