【问题标题】:Codeigniter routing return "file not found" after moving to live server移动到实时服务器后,Codeigniter 路由返回“找不到文件”
【发布时间】:2017-02-21 17:26:49
【问题描述】:

在我的根目录中,我有 .htaccess:

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

从 url 中删除 index.php。

在我的 routes.php 文件中,我有:

$route['default_controller'] = 'absolventi';
$route['absolventi'] = 'absolventi';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

默认控制器有效,但将 /absolventi 添加到域则无效。请求的每个文件都返回未找到的文件。 ajax 调用也会返回。

我尝试更改为 $route['absolventi'] = 'index.php/absolventi'; 以查看 .htaccess 是否覆盖 index.php 但仍然是相同的错误。真的不知道还能做什么。任何帮助,建议将不胜感激。如果需要更多信息,请询问。

【问题讨论】:

  • 是否启用了 mod_rewrite?

标签: php .htaccess codeigniter routing host


【解决方案1】:

如果这是您的控制器名称absolventi,请按照此操作

文件名应为 Absolventi.php
和文件里面

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Absolventi extends CI_Controller {


    public function  __construct()
    {
        parent::__construct();

    }

对项目中的所有文件执行此操作。 我们称之为命名转化

阅读PHP Style Guidee#file-naming

【讨论】:

  • 我在命名转换方面一切正常!如果有问题,CI 返回 404 页面。控制器“absolventi”在作为 base_controller 调用时可以完美运行。
  • 抱歉,不是作为 base_controller 而是作为 default_controller。思路是控制器工作,路由有问题。
  • 我应该检查什么?我在另一个问题中发现了类似的评论,但不明白我到底应该检查什么以及如何检查?
  • 再次移动文件和文件夹。 (控制器/视图和模型)并授予这些文件夹 655 权限
猜你喜欢
  • 2014-11-27
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-16
  • 1970-01-01
  • 2013-06-08
  • 2014-04-17
相关资源
最近更新 更多