2016-07-26 88 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