codeigniter 3 – 删除index.php:在Linux上的错误404,但在Windows上工作正常

错误404在Linux上,但在Windows上工作正常。 这是什么原因造成的?

我使用这个教程: http : //www.tutora.fr/apprendre-codeigniter/les-controleurs

application / config / routes.php:

$route['default_controller'] = 'welcome'; $route['translate_uri_dashes'] = FALSE; $route['login'] = 'user_authentification/user_authentification'; 

的application / config / config.php文件:

 $config['base_url'] = ''; $config['index_page'] = ''; $config['uri_protocol'] = 'REQUEST_URI'; $config['subclass_prefix'] = 'CORE_'; 

Windows上的本地托pipe(XAMPP)在url mysite.dev/login上正常工作。

在Linux上实时托pipe会在url mysite.pro/login处产生404错误。

如果我添加index.php (mysite.pro/index.php/login),它工作正常,但我会删除它。

Linux是区分大小写的。 请记住,在这种情况下你写了目录和文件名。 您应该在任何文件中写入文件或目录名称,完全相同的文件或目录所属。

请检查user_authentification的文件/目录。 此外,控制器/模型的首字母应该是caps(codeigniter要求)。 请检查是否正确写入controller/model名称。

更新

将下面的代码片段放在.htaccess文件中:

 <Ifmodulee mod_rewrite.c> RewriteEngine on RewriteCond $1 !^(index\.php|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA] </Ifmodulee> 

如果其他.htaccess文件尚未创建,请在项目根目录下创建.htaccess文件。

下面的代码复制粘贴到它。

 <Ifmodulee mod_rewrite.c> RewriteEngine on RewriteBase /projectname RewriteCond $1 !^(index\.php|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA] </Ifmodulee> 

你可以试试这个链接http://addictors.in/remove-index-php-from-url-in-codeigniter/

不要忘记重新启动您的服务器

希望能帮助到你。

管理员发现错误。 虚拟主机出现错误。
.htaccess文件从未执行。
感谢大家的帮助。