Codeigniter + SSL + .htaccess +无限重定向

时间:2012-09-16 07:57:19

标签: php .htaccess codeigniter ssl

我正在尝试在我的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

有什么想法吗?

2 个答案:

答案 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]