2013-07-04 101 views
0

我繼承了Codeigniter的代碼庫,我試圖讓URL路由啓動並運行,但它似乎只拋出404錯誤。Codeigniter,URL路由失敗

當我去http://root_url/index.php時,它碰到了默認的控制器/方法,但是當我請求任何特定的控制器/操作時,它是404s。

如果我要求http://root_url/index.php/auth/login阿帕奇拋出

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

它看起來像阿帕奇正試圖要求顯然是不存在的,而不是提供認證/註冊的URI段到的index.php文件夾

注:

  • 我沒有使用任何htaccess文件(代碼庫應該沒有一個工作)
  • mod_rewrite的啓用,並通過PHP的,雖然我懷疑問題是創下PHP
  • 我使用Debian(W /阿帕奇2.2.2),而不是Ubuntu的(2.2.14),其中它的工作
  • 之前存在的檢測
  • 查詢字符串參數做工精細,它只是URI段
  • 我不會試圖刪除的index.php,只是得到基本控制URL匹配工作
+0

你能分享你的控制器和配置文件嗎? –

+0

控制器文件只是默認的config.php,控制器就是歡迎控制器。因此,使用新代碼安裝http://root_url/index.php/welcome將會失敗。我相信這是與apache解析前向斜線的參數有關的。 – Shane

+0

嘗試在URL中添加'?',使其成爲'http://root_url/index.php?/ auth/login' – complex857

回答

1

它實際上原來是一個Apache配置問題在debian上,沒有什麼特別與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 。

感謝您的幫助。

+0

實際上,它似乎是安裝了最新版本的apache的問題。簡單地運行'sudo apt-get install libapache2-mod-php5'似乎可行。 – Shane