我想知道我的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'] = '';
答案 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。 现在一切都正常运作。很多人为了解决一个不存在的问题而浪费你的时间而道歉!