Codeigniter设置

时间:2010-08-31 15:46:59

标签: url codeigniter

我想知道我的CI设置是否有问题。如果我加载base_url即http://localhost/~User/project/ 然后它完全加载,在默认控制器之前添加index.php。然而, 我的配置文件有

 $config['index_page'] =  '';

作为测试,我将此值返回到'index.php'。当我在此之后加载base_url时,它返回:http://localhost/~User/project/index.php/index.php/controller/method

这是我应该期待的吗?我的.htaccess文件出现了大问题,似乎没有用。我把这个作为一个单独的问题发布,因为两者是无关的。

更新:我现在已经.htaccess工作了,index.php已经消失但是只要输入完整的URL。

如果我只输入base_url,那么它会加载默认控制器,但仍会将index.php添加到字符串中。

澄清......

如果我输入:     http://localhost/~User/project/controller/method 一切都按预期工作,URL保持这样。类似地,如果我遵循相对链接,那么正确的控制器和方法将加载index.php出现在URL中。

但是,如果我只输入:     http://localhost/~User/project 它将我重定向到     http://localhost/~User/project/index.php/controller/method

控制器是我在配置文件中设置的默认设置,我也设置了

 $this->config['index_page'] = '';

3 个答案:

答案 0 :(得分:0)

您是否跟着this tutorial来信了?

答案 1 :(得分:0)

尝试使用以下.htaccess文件,它到目前为止从未让我失望:

<IfModule mod_rewrite.c>

        Options +FollowSymLinks
        RewriteEngine on

        # Send request via index.php (again, not if its a real file or folder)
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d

        <IfModule mod_php5.c>
                RewriteRule ^(.*)$ index.php/$1 [L]
        </IfModule>

        <IfModule !mod_php5.c>
                RewriteRule ^(.*)$ index.php?/$1 [L]
        </IfModule>

</IfModule>

答案 2 :(得分:0)

解决:

好的,这让我感到很愚蠢,但我找到了问题的原因。我在MY_Controller中隐藏了一个重定向功能,我完全忘记了这一点。因为以前我无法使.htaccess工作,所以我将重定向硬编码为包含index.php。 现在一切都正常运作。很多人为了解决一个不存在的问题而浪费你的时间而道歉!