0

使用我继承的 codeigniter 代码库,我正在尝试启动并运行 url 路由,但它似乎只会引发 404 错误。

当我去http://root_url/index.php它时,它会很好地击中默认的控制器/方法,但是当我请求任何特定的控制器/动作时,它会出现 404s。

如果我要求http://root_url/index.php/auth/loginapache 抛出

File does not exist: /var/www/ci_project/index.php/auth/login, referer: http://root_url/index.php

看起来 apache 正在尝试请求一个显然不存在的文件夹,而不是将 auth/login 的 uri 段提供给 index.php

笔记:

  • 我没有使用任何 htaccess 文件(代码库应该可以在没有文件的情况下工作)
  • mod_rewrite 已启用并被 php 检测到,尽管我怀疑问题是在点击 php 之前发生的
  • 我正在使用 debian(w/ apache 2.2.2) 而不是 ubuntu(2.2.14) 它可以工作
  • 查询字符串参数工作正常,它只是 URI 段
  • 我不是试图删除 index.php,只是让基本的控制器 url 匹配工作
4

1 回答 1

1

它实际上是 debian 上的一个 apache 配置问题,与 codeigniter 没有任何关系。

我对 apache 进行了清除/重新安装,这似乎解决了这个问题。

sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
sudo apt-get autoremove --purge
sudo apt-get install apache2
sudo apt-get install libapache2-mod-php5

关于为什么会出现问题,我唯一的猜测是我有libapache2-mod-php5filter(直到清除发生之前我才意识到)而不是libapache2-mod-php5安装的包,它根本没有正确处理 url。

谢谢您的帮助。

于 2013-07-05T14:41:44.010 回答