Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
codeigniter 3-删除index.php:在linux上出现错误404,但在windows上可以正常工作_Php_Linux_.htaccess_Codeigniter - Fatal编程技术网

codeigniter 3-删除index.php:在linux上出现错误404,但在windows上可以正常工作

codeigniter 3-删除index.php:在linux上出现错误404,但在windows上可以正常工作,php,linux,.htaccess,codeigniter,Php,Linux,.htaccess,Codeigniter,linux上出现错误404,但在windows上工作正常。这是什么原因造成的 我使用本教程: application/config/routes.php: $route['default_controller']='welcome'; $route['translate_uri_dashes']=FALSE; $route['login']='user\u authentication/user\u authentication'; application/config/config.php:

linux上出现错误404,但在windows上工作正常。这是什么原因造成的

我使用本教程:

application/config/routes.php:

$route['default_controller']='welcome';
$route['translate_uri_dashes']=FALSE;
$route['login']='user\u authentication/user\u authentication';
application/config/config.php:

$config['base\u url']='';
$config['index_page']='';
$config['uri_protocol']='REQUEST_uri';
$config['subclass_prefix']='CORE_';
Windows上的本地主机(XAMPP)在url mysite.dev/login上运行良好

Linux上的实时托管在url mysite.pro/login处产生404错误


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

如果尚未创建其他.htaccess文件,则在项目根目录中创建.htaccess文件

将下面的粘贴代码复制到其中

<IfModule 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]
</IfModule>

重新启动发动机
重写库/项目名
1美元^(索引\.php | resources | robots\.txt)
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$index.php/$1[L,QSA]
你可以试试这个链接

别忘了重新启动服务器


希望有帮助。

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

请检查
用户身份验证的文件/目录
。此外,控制器/型号的第一个字母应为caps(codeigniter要求)。请检查您是否正确填写了
控制器/型号
名称

更新

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

<IfModule 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]
</IfModule>

重新启动发动机
1美元^(索引\.php | resources | robots\.txt)
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$index.php/$1[L,QSA]

管理员发现了错误。虚拟主机中出现错误。
从未执行.htaccess文件。

谢谢大家的帮助。

可能是因为几个问题。其中一些是文件权限问题、mod rewrite enable/disable、错误的CI配置etc@safin查科:你说得对。我刚刚给管理员发了一封电子邮件。我希望。。。。。。。看到花儿生长;)在基本url中放入
http://mysite.pro/
。我只是告诉管理员在virtualhost中检查这些行,如果这些行不匹配,就更改它们,然后重新启动apache。我等待DirectoryIndex.php AllowOverride All Order allow,deny allow管理员已经执行了一些测试。一切都好;(正常情况下,.htaccess文件应该重定向到index.php/login和mysite.pro/login显示在浏览器上。codeigniter没有加载Yet您是对的,它写得正确。(404错误),(工作正常)。我不明白为什么…你启用了mod_rewrite吗?如果没有,请启用mod_rewrite并让我知道,如果你没有,我会给你发送一些应该在
.htaccess
上编写的代码。我在.htaccess文件中已经有了这个。我只是清除了我的文件并保留了你的配置:没有更改。我希望管理员会给你发电子邮件。你在吗本地主机还是主机?这是我自己的主机。Linux 3.2.0 Debian 3.2.51-1 x86_64。