我们在 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/