2010-08-31 78 views
0

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

$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。

但是,如果我只类型: http://localhost/~User/project 它重定向我 http://localhost/~User/project/index.php/controller/method

控制器是,我已经安装在我的配置文件默认设置,我还设置

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

回答

0

你是否按照this tutorial来信?

+0

是的,我有。这正是我试图使用的.htaccess文件。我甚至尝试彻底删除.htaccess,并将其建议直接添加到我的httpd.conf文件中。那也行不通。 – musoNic80 2010-08-31 17:33:30

+0

重新阅读您的文章后,我大多不确定问题所在。你期望看到index.php?如果没有,请尝试使用这个htaccess,而不是该页面上的那个: http://snipplr.com/view/5966/codeigniter-htaccess/ – treeface 2010-08-31 17:52:39

+0

@treeface我不期待看到index.php!请参阅我的更新op – musoNic80 2010-08-31 18:07:04

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> 
0

解决:

确定这让我觉得很愚蠢,但我发现这个问题的原因。我在MY_Controller中隐藏了一个我完全被遗忘的重定向函数。因为之前我无法使用.htaccess工作,所以我将重定向硬编码为包含index.php。 所有东西现在都可以正常工作。许多道歉浪费你的时间试图解决一个不存在的问题!