在codeigniter中重定向循环

时间:2014-11-20 14:20:36

标签: apache .htaccess codeigniter

我的https://mydomainname.com上有一个网站。

今天工作时我必须更改文件的许可才能生成或写入(虽然我不认为任何问题是由于此引起的)并且从那时起该网站已进入重定向循环。使用codeigniter Framework在php中构建站点。

我的目录结构是:

/var/www/html/myprojectRoot

我的服务器的默认DocumentRoot是/var/www/html/

在html里面我有.htaccess文件如下:

RewriteEngine On
RewriteRule ^$ /myprojectRoot/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|javascript|images|robots\.txt)
RewriteRule ^(.*)$ /myprojectRoot/index.php/$1 [L]

我的baseurl设置为https://mydomainname.com

我可以在firebug控制台中看到sute被重定向 https://mydomainname.comhttps://mydomainname.com/myprojectRoot

有人可以解释这个问题。

2 个答案:

答案 0 :(得分:0)

保持/myprojectRoot/.htaccess像这样:

RewriteEngine on    
RewriteBase /myprojectRoot/

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

然后在/myprojectRoot/application/config/config.php内你需要有这些配置设置:

$config['base_url']     = '';
$config['index_page']   = '';
$config['uri_protocol'] = 'AUTO';

你的根.htaccess应该是这样的:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^((?!myprojectRoot/).*)$ /myprojectRoot/$1 [L,NC]

答案 1 :(得分:-1)

我认为这不是您可能会更改代码的问题。 您应该检查执行重定向功能的代码。 在那里重定向可能会有一个检查,否则它会从重定向的位置收回。

And it become a redirect loop. From one method to another.