目前我正嘗試將網站移到新的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。
以前是否在不同的文件夾中? – Ohgodwhy 2014-10-02 09:56:01
您應該查看.htaccess並搜索以'RewriteBase'開頭的行。確保它指向您的應用程序所在的目錄。如果您可以通過http:// www.example.com訪問應用程序,則應該只有一個斜槓:'RewriteBase /'。但是如果你有一個子目錄,比如'http:// www.example.com /〜user /',那麼添加子目錄:'RewriteBase /〜user /' – giorgio 2014-10-02 09:57:05
@Ohgod爲什麼它是相同的文件夾,因爲我全部複製從舊服務器到新文件的文件。 @giorgio我剛纔嘗試了幾種可能性,但都沒有工作。畢竟,我猜'RewriteBase /'是正確的。 – joey1105 2014-10-02 10:09:34