2014-10-02 80 views
0

目前我正嘗試將網站移到新的Web服務器。該網站使用CodeIgniter,並在舊的服務器上,每條路線都有效。在新服務器上,即使我從舊服務器複製了整個網站,它們都不工作。這意味着.htaccess文件沒有區別,因爲兩個服務器包含完全相同的網站。甚至沒有默認路線正在工作,只是主頁(index.php)。我在.htaccess中包含了代碼以從路由URL中刪除'index.php',但這也行不通。CodeIgniter路由 - 移動到新服務器後出現404錯誤

如果我試圖訪問'1.1.1.1/~user/employees',它會給我一個404錯誤,這意味着CodeIgniter路由不起作用。控制器文件位於/application/controllers/employees.php,所以我不確定是什麼導致了這個問題。

我知道這裏的網站有類似的帖子,但沒有一個能解決我的問題。配置/ config.php文件的配置如下(部分):

$config['base_url'] = '1.1.1.1/~user'; 
$config['index_page'] = ''; 
$config['uri_protocol'] = 'AUTO'; 

我曾試圖改變BASE_URL,但它仍然如果它是空的不起作用。將uri_protocol更改爲REQUEST_URI或PATH_INFO也不起作用。另外,如果我嘗試使用1.1.1.1/~user/index.php/employees(所以放入'index.php /'之間),我仍然無法訪問該頁面。我也檢查了一些Apache設置,AllowOverride設置爲ALL,mod_rewrite模塊已安裝並啓用。是否還有其他關於服務器配置差異的其他問題,我可能錯過了?

編輯: 我覺得我更接近找出問題所在。它或者是Apache或者.htaccess的東西(但我已經嘗試過很多),或者它與服務器URL是1.1.1.1/~user而不是2.2.2.2一樣,因爲它在舊服務器上。也許我應該改變我的.htaccess的baseurl或位置?這看起來類似於我的問題,但移動.htaccess並未解決問題:Url routing errors in php in codeigniter。我可能會嘗試重新安裝Apache。

+0

以前是否在不同的文件夾中? – Ohgodwhy 2014-10-02 09:56:01

+0

您應該查看.htaccess並搜索以'RewriteBase'開頭的行。確保它指向您的應用程序所在的目錄。如果您可以通過http:// www.example.com訪問應用程序,則應該只有一個斜槓:'RewriteBase /'。但是如果你有一個子目錄,比如'http:// www.example.com /〜user /',那麼添加子目錄:'RewriteBase /〜user /' – giorgio 2014-10-02 09:57:05

+0

@Ohgod爲什麼它是相同的文件夾,因爲我全部複製從舊服務器到新文件的文件。 @giorgio我剛纔嘗試了幾種可能性,但都沒有工作。畢竟,我猜'RewriteBase /'是正確的。 – joey1105 2014-10-02 10:09:34

回答

1

我認爲你首先應該知道發生了什麼。

  • 所有對CI的請求都通過index.php,所以你只需要回顯一些內容並退出index.php文件的第一行。

  • 如果頁面顯示您迴應的內容,表示CI中存在錯誤,否則這不是因爲CI。你可以專注於導致問題的原因。

對不起,我的英語。

+0

我添加了一個echo並退出到索引文件的開頭,並顯示了回顯。這對CI來說意味着什麼?我沒有改變這些文件的任何東西,它可以在舊的服務器上運行... – joey1105 2014-10-02 10:15:31

+0

您應該在文件夾system/core中打開文件CodeIgniter.php。然後找到「show_404」。對於他們每個人,你應該在show_404(「{$ class}/{$ method}」)之前退出並回顯一些內容。並觀察導致錯誤的行。 – jewelnguyen8 2014-10-02 10:32:28

+0

在知道引起它的原因後,您可以回顯URI並查看是否有錯誤。我很抱歉,也許這是不是由CI引起的。但我認爲你可以通過這種方式瞭解發生的事情。 – jewelnguyen8 2014-10-02 10:43:31

相關問題