0

我知道有很多像這樣的問題,但我應用了所有內容,並且找不到正確的方法。CodeIgniter 2.1.4 - 路由在服務器中不起作用

的是的.htaccess:

RewriteEngine On 
RewriteBase /NewWebsite 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
ErrorDocument 404 /NewWebsite/error.php 
</IfModule> 

在配置/ config.php文件:

$config['base_url'] = 'https://mydomain.com/NewWebsite/'; 
$config['index_page'] = ''; 
$config['uri_protocol'] = 'AUTO'; // I change it with REQUEST_URI and PATH_INFO but it don't work 

在服務器,mod_rewrite的啓用。

在本地主機中,一切正常,但當我上傳到服務器,只有索引工作(你看到的第一頁),但當我想「移動」在網上,我有404錯誤,頁面未找到。

我將顯示一個控制器,以及如何將其更改爲另一個視圖。

class Products_controller extends CI_Controller { 
    public function index() 
    { 
     $this->load->helper('url'); 
     $this->load->helper('html'); 
     $this->load->view('products.php'); 
    } 
} 

而從指數,我把它叫做:

echo base_url('Products_controller/index'); 

OR

echo base_url('Products'); // I have in config/routes.php ---> $route['Products'] = "Products_controller/index"; 

任何人都可以幫我嗎?我錯過了什麼?

謝謝。

+0

什麼是您的託管服務提供商? .htaccess因託管服務提供商而異。 –

+0

我的託管服務提供商是hostinet。我問他「mod_rewrite」,他們說它已被激活,所以我可以使用它。 – danigonlinea

+0

試試我的答案,讓我知道發生了什麼。 –

回答

0

最後,我得到了一個關於這個話題的解決方案。它不是關於.htaccess問題,是一個真正的轉儲和簡單的錯誤。

在CodeIgniter中,控制器的名稱和文件名稱 必須具有完全相同的名稱。我一直定義我的 控制器的第一個字母大寫,而不是在文件 名稱。現在一切都好!

謝謝你們。

0

儘管.htaccess有時依賴於託管服務器,但您可以嘗試使用此功能並讓我們知道。用下面的代碼替換您的.htaccess代碼:

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*) index.php?/$1 

那就是它。

+0

我做到了,現在...當我嘗試更改爲調用上述控制器的視圖時..我被重定向到「mydomain.com」。我的意思是,我試圖在「mydomain.com/NewWebsite」中安裝Codeigniter的子目錄。 – danigonlinea

+0

我可以嘗試將它安裝在「mydomain.com」而不是「mydomain」中。com/NewWebsite「但是...它不是一回事嗎?它必須是一個根目錄? – danigonlinea

+0

請簡要描述你的場景,以便我可以完美地回答你。 –

0
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /NewWebsite/index.php [L] 
</IfModule> 

上面應該工作 - 確保您的.htaccess是你想從運行子目錄內。

另外請確保您在基本目錄中沒有衝突的.htaccess規則。

+0

不工作當我嘗試離開index.php時,得到404.我不明白,它必須工作 – danigonlinea

+0

我嘗試了一個新的項目。沒有.htacess,所以你可以在URL中看到index.php。只有兩個控制器,兩個頁面和一個目標...從一個到另一個,它也失敗了,它會是什麼?它是服務器?還是什麼?這會讓我發瘋,我看到URL是這樣的:www.d omain.com/NewWebsite/ControllerName/FunctionName但總是404錯誤,頁面未找到。 – danigonlinea