如果没有index.php,Codeigniter URL无法正常工作

时间:2011-12-11 15:23:32

标签: codeigniter codeigniter-url

我刚刚设置了一个新的网站http://www.reviewongadgets.com

但是网址渲染存在问题

当我将URL放在下面时,它不起作用并且给出了找不到页面的错误 http://www.reviewongadgets.com/latest-mobile

但它适用 http://www.reviewongadgets.com/index.php/latest-mobile

我不想在我的网址中显示index.php,它应该是http://www.reviewongadgets.com/latest-mobile 你能告诉我该怎么办?

这是我的.htaccess文件内容:

RewriteEngine on

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

配置文件内容:

$config['base_url'] = "http://www.reviewongadgets.com";
$config['index_page'] = "";

为我的另一个网站工作的相同类型配置

将我的.htaccess内容更改为

<IfModule mod_rewrite.c>
    RewriteEngine On

 RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

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

3 个答案:

答案 0 :(得分:3)

此问题的最常见解决方案通常是在?中的index.php之后缺少问号.htaccess,所以

RewriteRule ^(.*)$ index.php/$1 [L]

应该是

RewriteRule ^(.*)$ index.php?/$1 [L]

E.G。在我的Windows XAMPP上,我不需要“?”,但在Linux托管环境中通常需要它。

答案 1 :(得分:2)

我同意Vlakorados,但我会分享我的.htaccess设置

RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA]

完美的工作。

我希望这对您的CI网站起作用

答案 2 :(得分:0)

您可能未加载rewrite_module模块。 尝试运行以下命令。

sudo a2enmod rewrite