我正在尝试在我的codeigniter网站上设置SSL,但我遇到了一些问题。
Codeigniter拒绝访问https://。 Firefox显示此错误:
页面未正确重定向。 Firefox检测到服务器正在以永远无法完成的方式重定向此地址的请求。
我的配置文件将此作为base_url
$config['base_url'] = "http".((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "")."://".$_SERVER['HTTP_HOST'].str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
我的.htaccess文件如下:
RewriteEngine on
RewriteCond $1 !^(index\.php|first_cut|media|robots\.txt|user_guide|xd_receiver\.htm|channel.php)
RewriteRule ^(.*)$ /index.php/$1 [L]
理想情况下,我希望https://始终应用于这些文件夹......
...然后是网站其余部分的可选https
有什么想法吗?
答案 0 :(得分:1)
请试试这段代码
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ http://www.projectname.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.projectname.com/$1 [R=301,L]
#search folder and redirect to subdomain
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} dimentions
RewriteRule ^(.*)$ https://www.projectname.com/$1 [R,L]
答案 1 :(得分:0)
您似乎只想将不存在的文件重定向到index.php
。有一种更简单的方法:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ /index.php/$1 [L]