嘿,我搜索了所有相关问题,但我没有找到任何解决方案。
我有一个包含以下网址的脚本:
htt://www.example.com/index.php/dosomthing/parametrs
现在我用过这个:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
然后在我的默认控制器中检查用户是否登录,如果不是,我使用此类功能将其重定向到登录控制器:
function redirect($uri = '', $method = 'location', $http_response_code = 302)
{
$uri = $this->config['home_url'] . ltrim($uri, '/');
switch($method)
{
case 'refresh' : header("Refresh:0;url=".$uri);
break;
default : header("Location: ".$uri, TRUE, $http_response_code);
break;
}
$this->dija = null;
exit;
}
它适用于localhost,但在托管上它不起作用并导致重定向循环,我真的很沮丧,不知道该怎么做。
答案 0 :(得分:0)
将您的RewriteRule更改为:
RewriteRule ^(.*)$ index.php?$1 [L]
在旧的情况下,您总是会重写到同一个旧网址,并且只是再次添加index.php部分,因为没有名为&#34; index.php /的文件&#34;