CodeIgniter删除index.php显示404

时间:2012-07-18 10:08:39

标签: php codeigniter mod-rewrite routes

我知道这个主题已在这里多次见过,但我没有看到他们中的任何一个在这里解决我的问题......

我有一个与Codeigniter合作的应用程序。我尝试删除URL中的index.php,但看起来我今天已经被诅咒了。

这是我在config.php文件中的内容:

$config['base_url']   = "http://".$_SERVER['SERVER_NAME']."/";
$config['index_page']    = "";
$config['uri_protocol']  = 'AUTO';

这是我的.htacess(如CI建议):

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

有了这个,我无法删除URL中的index.php。事实上,它删除了很好,但我在屏幕上有一个漂亮的404。

我检查了phpinfos()以查看mod_rewrite是否被正确激活,并且这方面没有问题。

**编辑**

我检查了我的apache日志,这就是我所拥有的:

[Wed Jul 18 12:27:08 2012] [error] [client 127.0.0.1] File does not exist: [PATH]/trunk/user

真正的道路应该是:

[PATH]/trunk/application/controllers/user

我看到所有这些东西都是在index.php文件中设置的,但似乎它从未被调用过......

有人可以建议我解决这个问题吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个:

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

第一个条件确保请求不是有效文件,第二个条件确保它不是有效目录。对文件系统中实际不存在的文件或文件夹的所有请求都通过index.php发送。

答案 1 :(得分:-1)

您无法阻止访问index.php页面,因为它是CI工作的主页。