2016-07-26 124 views
0

在我的本地機器上測試網站時,一切正常,但上傳後只有默認控制器顯示。CodeIgniter只顯示默認控制器

這是我的設置:

網址: http://devilmay88.bplaced.net/live-access/

文件夾結構:

/live-access 
    /application 
    /system 
    /assets 

的config.php:

$config['base_url'] = 'http://devilmay88.bplaced.net/live-access/'; 
$config['index_page'] = ''; 
$config['uri_protocol'] = 'QUERY_STRING'; 

routes.php文件:

$route['default_controller'] = 'Welcome'; 
$route['404_override'] = ''; 
$route['translate_uri_dashes'] = FALSE; 
$route['assets/(:any)'] = 'assets/$1'; 
$route['login'] = 'Login'; 

的.htaccess:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /live-access 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ /live-access/index.php?/{controller}/{method}/$1 [L] 
</IfModule> 

.htaccess文件是在現場訪問文件夾,因爲我在測試其他內容得到了一個錯誤,這似乎是解釋。當我更改uri_protocol時,我得到的是404。而codeIgniter版本是3.0.6。

有沒有人看到這裏有什麼問題?

我剛剛發現uri_string()返回一個空字符串(也包含迄今爲止建議的.htaccess更改)。

+0

您能提供一個適用於您的本地環境的示例URL,以及相關的URL,它不適用於您的主機環境嗎? – versalle88

+0

通常情況下,人們在'RewriteBase/live-access /'末尾放置了斜線。考慮到這一點,你不需要在'RewriteRule ^(。*)$ index.php/{controller}/{method}/$ 1 [L]'中引用斜線。另外我認爲重複目錄名稱「live-access」就足夠了。嘗試刪除q標記。經測試,我會說這是我剛剛提出的最後一個。 – Tpojka

+0

小寫它應該是'$ route ['default_controller'] ='welcome';' – user4419336

回答

0

爭取你的htaccess像

RewriteEngine On 
RewriteRule ^(application) - [F,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /live-access/index.php?/$1 [L] 

也更簡單的東西你不告訴我們 - 你嘗試過什麼其他路線或網址?你得到了什麼錯誤?

+0

試過了,但沒有變化。我不記得我嘗試過的一切,基本上我在網上找到的關於該主題的所有內容。我用'Options + FollowSymLinks'得到500錯誤,沒有其他東西似乎有效果。 – cMonkey

+0

上傳一個新的codeigniter副本,確認它的工作原理,然後測試它。如果仍然不起作用,請聯繫您的託管公司。子域名可能是一個問題。 – cartalot