php - Codeigniter - 收到 404 Not Found 错误

标签 php .htaccess codeigniter

我们在 godaddy 有两个托管包。我们的实时网站使用以下 .htaccess 文件运行良好。无需在 url 中使用 index.php 即可访问网站。

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

我们在其他也由 godaddy 提供的主机上使用了相同的 htaccess 文件和相同的代码。我们只是想让生产和开发实例分开。但是在具有相同代码和 htaccess 文件的其他主机上,网站显示 404 页面未找到错误,但网站在 url 中使用 index.php 可以正常工作。

我们两台服务器上的 php 版本相同。只是想知道可能是什么问题?

最佳答案

当我将 100% 工作的代码移至专用的 Debian 服务器时,我也遇到了类似的问题。经过 3 小时的研究,我发现了 htaccess 文件不起作用的原因。您需要在 Apache 配置中允许覆盖 htaccess。

这是步骤。

第 1 步:

在htaccess文件中添加

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L,QSA]
</IfModule>

第 2 步:

删除 codeigniter 配置中的 index.php

$config['index_page'] = '';

第 3 步:

允许在 Apache 配置(命令)中覆盖 htaccess

sudo nano /etc/apache2/apache2.conf

并编辑文件并更改为

AllowOverride All

对于 www 文件夹

第 4 步:

重新启动 Apache(命令)

sudo /etc/init.d/apache2 restart

在对 apache2.conf 文件进行任何更改之前,请确保备份该文件。如果您使用的是 Debian 服务器,则可以避免使用 sudo 命令。我相信您知道如何使用 putty 等 ssh 客户端软件连接到您的服务器。如果此方法对您不起作用,请在下方评论。

关于php - Codeigniter - 收到 404 Not Found 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43284147/

相关文章:

php - Opencart 重复 URL 关键字

php - 根据另一个选择选项从数据库提供选择选项

angularjs - 如何为 angularjs 网站做 301 重定向

javascript - Emberjs 应用程序刷新索引以外的路由会出现 404 错误

php - 在 Core Php 和 CodeIgniter 之间共享 session

php - 如何替换我网站中的整个网址?

php - Prestashop 1.7 如何添加或编辑产品条件?

php - SSL 错误 : how to redirect https://www. domain.com 通过 .htaccess 到 http ://domain. com 以避免 SSL 错误

php - 用户名或电子邮件存在时不返回错误

php - 无法在 CodeIgniter 中获取验证码图像