Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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 Codeigniter3在服务器部署后提供404(不读取应用程序文件夹)_Php_Codeigniter - Fatal编程技术网

Php Codeigniter3在服务器部署后提供404(不读取应用程序文件夹)

Php Codeigniter3在服务器部署后提供404(不读取应用程序文件夹),php,codeigniter,Php,Codeigniter,看到了一些关于这个主题的问题,所有的问题似乎都与.htaccess有关——我已经在下面贴了我的问题 .htaccess(存储在应用程序上方的根web文件夹中): SSL证书安装正确,测试正常。还使用交换到http的基本url和端口80的vhost设置进行了测试。通配符证书也在没有codeigniter的不同子域上进行了测试,工作正常 返回404错误的所有页面。Apache访问日志显示命中的端点不正确 Apache错误日志: [core:info][pid 26683][client x.x.x.

看到了一些关于这个主题的问题,所有的问题似乎都与.htaccess有关——我已经在下面贴了我的问题

.htaccess(存储在应用程序上方的根web文件夹中):

SSL证书安装正确,测试正常。还使用交换到http的基本url和端口80的vhost设置进行了测试。通配符证书也在没有codeigniter的不同子域上进行了测试,工作正常

返回404错误的所有页面。Apache访问日志显示命中的端点不正确

Apache错误日志:

[core:info][pid 26683][client x.x.x.x:53318]AH00128:文件不存在 存在:/var/www/mysite/Account/login

这是不正确的端点-应点击/Application/Account/login以加载帐户控制器。这只发生在current服务器设置上(标准LAMP堆栈上的Ubuntu 16.04)


但是,如果我将vhost设置为从应用程序文件夹开始,这显然会导致我丢失。htaccess、assets、images等。有人知道为什么CI似乎在根目录下查找控制器吗?

请确保vhost设置正确。键入错误会对虚拟主机造成严重后果,而控制器完全错误的位置路径可能表明存在vhost设置问题

您可以通过在浏览器地址中包含index.php来确认.htaccess是否正常工作,例如

example.com/index.php/account/login
如果你不使用
index.php,那么
mod\u rewrite
不是“开”的,就是你的虚拟主机坏了。

  • 检查您的类名和类文件名
  • 类名以类似“Functions”的大写字母开头
  • 类文件名以小写字母开头,如“函数”
  • 控制器名称与类名相同,如“Home\u Controller=> Home_Controller.php“
  • 在项目中包含库时,应使用 小写字母。像这样,
Functions.php=>this->load->library(“函数”);
$this->functions->yourMethod()

请尝试从$config['index_page']中删除index.php,以确认vhost的根(公共)目录是/var/www/mysite/和index.php plus.htaccess都在该文件夹中。@evisempire尝试了这一点,还尝试了设置base_url=''。没有区别。@d必须设置正确的朋友
$config['base\u url']
。虽然您的问题与“索引页面”无关,但您应该这样设置:`$config['index\u page']='';
$config['base_url']    = 'https://'.$_SERVER['HTTP_HOST'].'/';
$config['index_page'] = 'index.php';
$config['uri_protocol'] = 'REQUEST_URI';
example.com/index.php/account/login