【问题标题】:Codeigniter 404 error page, routing issueCodeigniter 404 错误页面,路由问题
【发布时间】:2013-08-31 04:30:44
【问题描述】:

我已经在服务器 godaddy 上使用 codeigniter 上传了我的 web 项目,我可以通过这个链接访问它 http://izhi-ks.org/facelajm/blog

我为此站点购买了一个新域 www.facelajm.com,我已将目录更新为 /facelajm,但出现 404 Page Not Found 错误。

所以我的 ftp 看起来像这样:

在根目录中,我有另一个网站 joomla,在该目录中,我有一个名为 facelajm 的文件夹。

在 codeigniter 根目录中,我有一个像这样的 .htaccess:

RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule ^(.*)$ index.php?/$1 [L]

我做错了什么,我只能通过输入 www.facelajm.com 来打开该网站 事实上,如果我只创建一个新的 index.php 并打印 hello world... 我怀疑 htaccess 或配置文件?

这里也是 config.php:

$config['base_url'] = "";

$config['index_page'] = '';

$config['uri_protocol'] = 'AUTO';

【问题讨论】:

  • 您是否更新了域的名称服务器记录?您的主机如何处理多个域?虚拟主机?这听起来像是 Server Fault 的问题,而不是 Stack Overflow...
  • 为什么当我使用 hello world 创建 index.php 时,它会在 codeigniter 文件的根目录中打开它???我更怀疑路由可能是错误的,我有:s,从托管方面,我只是将域设置到 /facelajm 目录,正如支持者所说

标签: codeigniter


【解决方案1】:

facelajm 目录(应该是您的域的根目录)中的.htaccess 更改为以下内容。我想你忘了打开RewriteEngine,忘了设置RewriteBase

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

更新

需要在routes.php中设置默认控制器

$route['default_controller'] = 'blog';

【讨论】:

【解决方案2】:

如果您使用 Codeigniter V3,请检查您的控制器的第一个字母是否为大写,例如:

 ci/application/controllers/dealer/Api.php 

【讨论】:

  • 我也是,必须检查我的模型和控制器并删除除第一个字母之外的所有大写字母。稍后会尝试找出原因,很高兴现在解决了:)
【解决方案3】:

更新您的 config 文件

/* your base url or your domain name for your application*/
$config['base_url'] = "http://example.com"; 

/*For your default index page generally this is empty */
$config['index_page'] = '';

【讨论】:

    【解决方案4】:

    我迁移到一个新环境,它开始在所有子页面上显示 404。我不得不编辑 Apache 的 httpd.conf,将所有 AllowOverride None 实例替换为 AllowOverride All(在我的例子中是第 231 和 268 行)。重新加载 Apache,它运行良好,没有任何进一步的更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-02
      • 2015-06-01
      • 2017-01-19
      • 2018-01-19
      相关资源
      最近更新 更多