在远程服务器上配置 codeigniter(404 未找到)

Posted

技术标签:

【中文标题】在远程服务器上配置 codeigniter(404 未找到)【英文标题】:Config codeigniter on remote server (404 not found) 【发布时间】:2016-11-08 11:35:31 【问题描述】:

我开始使用codeigniter 和netbeans 在远程服务器上实现一个php 应用程序。我不明白为什么即使我完成了所有配置,我仍然有(404 未找到)。与服务器的连接正常,我可以上传文件。在 $config['base_url'] 中,我尝试了服务器的地址,index.html 的路径,什么都没有……没有结果。 我实际上不知道问题出在哪里以及我必须更改哪个文件,如果有人可以帮助我,请找到解决方案。

非常感谢您的回答!

【问题讨论】:

【参考方案1】:

在不查看您的配置的情况下很难解决您的问题。我会说首先仔细检查您的 $config['base_url'] 是否像您提到的那样,但将其设置为站点名称/地址。例如,如果我只是在端口 8888 上本地运行一些东西,它看起来像这样

$config['base_url'] = 'http://localhost:8888/';

因此,如果您的网站类似于 wwww.example.com,那就是

$config['base_url'] = 'http://www.example.com/';

如果您想从 URL 中删除“index.php”,还请仔细检查您的 .htaccess 文件以重新写入访问权限。您的网站使用什么网络服务器?

【讨论】:

我的 $config['base_url'] 看起来像: $config['base_url'] = 'xx.xx.xx.xx'; (服务器的 IP)我应该在我的访问文件中更改什么?我正在使用 apache 作为 Web 服务器。 如果您使用的是 Ubuntu,请使用命令“a2enmod rewrite”,然后重新启动 apache 服务器。这应该为您的 apache 服务器启用 mod_rewrite。还要仔细检查您的 config.php 文件并设置 $config['index_page'] = ''; 我在 redhat 6.6 上,它不起作用。 $config['index_page'] = ''index.php" 我没有写任何代码,我想得到codeigniter的欢迎页面开始编码。我的文件.htaccess看起来像:它看起来像:要求全部拒绝 全部拒绝 使用 $config['index_page'] 设置,您需要通过 xx.xx.xx.xx/index.php/welcome 访问您的站点。您仍然使用该 URL 获得 404 吗? 我得到了同样的错误。我在服务器中的应用程序位于 /opt/application.../php/name_of_application 中。所以,如果我明白我必须把我的 $config['base_url'] = 'xx.xx.xx.xx/index.php/welcom' 和浏览器xx.xx.xx.xx/index.php/welcome 或其他什么?我必须更改 .htaccess 中的某些内容?【参考方案2】:

你说“index.html 的路径”。 这不是 CI 的工作方式。您不应该直接访问视图。尝试使用您的控制器访问它们。例如,您可以有一个控制器“欢迎”(这是您下载框架时的标准控制器)。它可能看起来像这样:

<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller 
    function index()
    
         $this->load->view('welcome_message');
    

此控制器应位于 应用程序/控制器,它将在应用程序/视图中加载一个视图。在这种情况下,这将加载“application/views/welcome_message.php”。您可以在 application/config/routes.php 中定义控制器的 url。默认情况下,当您下载框架时会调用控制器“欢迎”。您还谈到了 .htaccess 文件。如果要删除 index.php,可以使用 htaccess 文件吗?从网址。在此处查看此问题的答案:CodeIgniter removing index.php from url我真的建议在开始使用框架之前观看一些 CI 基础教程。您可以在几个小时内掌握框架及其文件夹结构的工作原理。 **编辑 **也许问题不在于 codeigniter,而在于您的网络服务器,您可以删除您的 codeingiter 安装并添加一个 phpinfo 文件。这样你就可以看到你的服务器有哪些 php 设置(如果 php 完全启用的话)。另请注意,nginx 不适用于 .htaccess,如果您使用的是 nginx 服务器,则应在配置文件中添加重写规则。

【讨论】:

我使用的第一个 url 是welcome_message 的路径,但是当它不起作用时,我尝试了我在网上找到的其他东西。我已经将 CI 用于本地运行的应用程序,我没有遇到任何问题,但是在远程服务器上,我不知道为什么使用相同的配置我仍然找不到错误 404。我还在 url 中添加 index.php 以不使用 htaccess 文件但没有结果:/ 问题可能出在您的网络服务器上,而不是在 ci 中。我编辑了我的帖子,为您提供了解决此问题的方法。检查 htaccess 文件是否正常工作的一种“肮脏”方法是在其中写入类似 foo bar 的内容。如果您的服务器返回错误,则说明您的文件正在运行。【参考方案3】:

一些托管服务提供商默认禁用 Mod_Rewrite。使用 phpinfo() 检查它是否已启用。

【讨论】:

我的access文件里没有mod_rewrite,正常吗?它看起来像: 要求所有拒绝 拒绝所有

以上是关于在远程服务器上配置 codeigniter(404 未找到)的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter post 函数在开发服务器上返回 404

CI ~ CodeIgniter在nginx下报错404 Not Found ,解决办法

CI ~ CodeIgniter在nginx下报错404 Not Found ,解决办法

CodeIgniter:在 Live Server 上找不到 404 页面

Codeigniter 3.0.4 在我的服务器上出现 404 Page Not Found 错误

显示 404 错误的 codeigniter 网站