Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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
Php Codeigniter`未指定输入文件'&`404未找到页面`活动时出错_Php_.htaccess_Mod Rewrite_Codeigniter 2_Codeigniter Url - Fatal编程技术网

Php Codeigniter`未指定输入文件'&`404未找到页面`活动时出错

Php Codeigniter`未指定输入文件'&`404未找到页面`活动时出错,php,.htaccess,mod-rewrite,codeigniter-2,codeigniter-url,Php,.htaccess,Mod Rewrite,Codeigniter 2,Codeigniter Url,我有一个(我自己的个人网站)。我使用WAMP在本地构建了这个应用程序,它可以100%正常工作(本地)。我把这个上传到我的live服务器上,我一直收到“404页面未找到”错误。这个错误是通过my Home->error方法来自codeigniter,而不是服务器,所以codeigniter肯定在工作 这是我的路线配置。如果我将404_覆盖更改为“主页”。它加载我的主控制器,因为它应该,但当我去任何页面,我得到404页找不到 $route['default_controller'] = 'Home'

我有一个(我自己的个人网站)。我使用WAMP在本地构建了这个应用程序,它可以100%正常工作(本地)。我把这个上传到我的live服务器上,我一直收到“404页面未找到”错误。这个错误是通过my Home->error方法来自codeigniter,而不是服务器,所以codeigniter肯定在工作

这是我的路线配置。如果我将404_覆盖更改为“主页”。它加载我的主控制器,因为它应该,但当我去任何页面,我得到404页找不到

$route['default_controller'] = 'Home';
$route['404_override'] = 'Home/Error';
我怀疑这可能与我的.htaccess&Codeigniter配置有关

// Codeigniter Config.php - Note: My Hosting is with Godaddy. [CGI/FastCGI]
$config['index_page'] = 'index.php?';
// Tried Auto and All others, REQUEST_URI works fastest for me.
$config['uri_protocol'] = 'REQUEST_URI';
我的.htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L] 
为了解决这个问题,我通过so&Google尝试了很多链接,下面是我反复尝试的链接。
-
-
-
-
-在许多其他方面

我相信这和htaccess和mod_重写有关,有什么想法吗


更新
如果我将
$route['404\u override']='Home/Error'
更改为我的任何控制器,它们会按预期显示和工作,但由于某些原因,它总是抛出404页面


如果我转到:
/index.php/home
-我得到错误
没有指定输入文件。
第一个控制器名称应该是小写的,如:
$route['default_controller']='home'

然后您可以将索引页留空:
$config['index_page']=''

在.htaccess的最后一行应该位于基本路径目录中的index.php旁边,您可以更改最后一行,如:
重新启动引擎

RewriteCond%{REQUEST\u FILENAME}-f

RewriteCond%{REQUEST\u FILENAME}-d

RewriteRule^(.*)$/home/index.php?$1[L]


希望它能解决第一个控制器的名称应该是小写的,比如:
$route['default_controller']='home'

然后您可以将索引页留空:
$config['index_page']=''

在.htaccess的最后一行应该位于基本路径目录中的index.php旁边,您可以更改最后一行,如:
重新启动引擎

RewriteCond%{REQUEST\u FILENAME}-f

RewriteCond%{REQUEST\u FILENAME}-d

RewriteRule^(.*)$/home/index.php?$1[L]

希望它能解决问题。找到问题。
确保您的控制器文件名是小写的
controllers/Home.php
不正确,这是抛出404页面未找到错误。
controllers/home.php
正确。

发现问题。
确保您的控制器文件名是小写的
controllers/Home.php
不正确,这是抛出404页面未找到错误。
controllers/home.php
正确。

确保您的主机已在apache中激活url重写。默认情况下,它在godaddy上-确保您的主机已在apache中激活url重写。默认情况下,第一个url重写在godaddy上-+1-在WAMP上,服务器很可能以不区分大小写的方式处理路径名。+1表示第一个url重写-打开WAMP很可能服务器以不区分大小写的方式处理路径名。@chrisramon不是先给了你关于小写的答案吗?@chrisramon不是先给了你关于小写的答案吗?