错误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文件从未执行。
感谢大家的帮助。