Codeigniter - .htaccess 给出 404 未找到页面(文件位于子文件夹中)

作者:编程家 分类: php 时间:2025-12-17

根据 CodeIgniter - .htaccess 给出 404 未找到页面(文件位于子文件夹中)的问题,我们将介绍如何通过.htaccess文件配置来处理这个问题。在CodeIgniter框架中,通过.htaccess文件可以实现URL重写和错误处理等功能。

首先,我们需要在项目的根目录下创建一个名为“.htaccess”的文件。在这个文件中,我们将配置Apache服务器以处理404页面未找到的情况。以下是一个示例的.htaccess文件的代码:

RewriteEngine On

RewriteBase /your_project_folder/

# 如果请求的文件或目录存在,则直接访问

RewriteCond %{REQUEST_FILENAME} -f [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^(.*)$ - [L]

# 否则,将请求重写到index.php

RewriteRule ^(.*)$ index.php/$1 [L]

接下来,让我们逐段解释上述代码的含义:

1. `RewriteEngine On` 表示启用Apache的URL重写引擎。

2. `RewriteBase /your_project_folder/` 需要根据你的项目实际目录进行修改。这里指定了项目的基本URL路径。

3. `RewriteCond %{REQUEST_FILENAME} -f [OR]` 检查请求的文件是否存在。

4. `RewriteCond %{REQUEST_FILENAME} -d` 检查请求的目录是否存在。

5. `RewriteRule ^(.*)$ - [L]` 如果请求的文件或目录存在,则直接访问,不进行重写。

6. `RewriteRule ^(.*)$ index.php/$1 [L]` 如果请求的文件或目录不存在,将请求重写到index.php文件,实现页面的访问。

示例代码:

假设我们有一个CodeIgniter项目,项目文件位于服务器的子文件夹`/my_project/`中。我们可以根据上述的.htaccess配置来处理404页面未找到的情况。

首先,在项目根目录下创建一个名为“.htaccess”的文件,并将上述的.htaccess代码复制到该文件中。

然后,在项目的`application`文件夹中创建一个名为`errors`的子文件夹。在该文件夹中,创建一个名为`html`的子文件夹。

接下来,在`html`文件夹中创建一个名为`error_404.php`的文件,用于处理404页面未找到的情况。在该文件中,您可以自定义404页面的内容。

php

404 页面未找到

404 页面未找到

很抱歉,您请求的页面不存在。

在CodeIgniter的配置文件`config.php`中,找到以下代码段:

php

/*

|--------------------------------------------------------------------------

| Error Logging Threshold

|--------------------------------------------------------------------------

|

| If you have enabled error logging, you can set an error threshold to

| determine what gets logged. Threshold options are:

|

| 0 = Disables logging, Error logging TURNED OFF

| 1 = Error Messages (including PHP errors)

| 2 = Debug Messages

| 3 = Informational Messages

| 4 = All Messages

|

| For a live site you'll usually only enable Errors (1) to be logged otherwise

| your log files will fill up very fast.

|

*/

$config['log_threshold'] = 0;

将`$config['log_threshold']`的值设置为0,即可禁用错误日志记录。

标题:处理404页面未找到的错误

在CodeIgniter框架中,当用户请求的页面不存在时,可以通过.htaccess文件来处理404页面未找到的错误。以下是具体的步骤和代码示例:

步骤1: 创建.htaccess文件

首先,在项目的根目录下创建一个名为“.htaccess”的文件。在该文件中,我们将配置Apache服务器以处理404页面未找到的情况。

步骤2: 编写.htaccess配置代码

在.htaccess文件中,添加以下代码:

RewriteEngine On

RewriteBase /your_project_folder/

# 如果请求的文件或目录存在,则直接访问

RewriteCond %{REQUEST_FILENAME} -f [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^(.*)$ - [L]

# 否则,将请求重写到index.php

RewriteRule ^(.*)$ index.php/$1 [L]

确保根据实际项目目录进行修改,并将该代码复制到.htaccess文件中。

步骤3: 创建404页面

在项目的`application`文件夹中,创建一个名为`errors`的子文件夹。在该文件夹中,再创建一个名为`html`的子文件夹。

在`html`文件夹中,创建一个名为`error_404.php`的文件。在该文件中,您可以自定义404页面的内容。以下是一个示例的404页面代码:

php

404 页面未找到

404 页面未找到

很抱歉,您请求的页面不存在。

步骤4: 配置CodeIgniter的错误日志记录

打开CodeIgniter的配置文件`config.php`,找到以下代码段:

php

$config['log_threshold'] = 0;

将`$config['log_threshold']`的值设置为0,即可禁用错误日志记录。

通过以上步骤,您已经成功配置了CodeIgniter框架以处理404页面未找到的错误。当用户请求的页面不存在时,将会显示您自定义的404页面。同时,您可以禁用错误日志记录,以避免日志文件过快填满服务器空间。

希望本文能够帮助您解决在CodeIgniter框架中处理404页面未找到的问题。如有任何疑问,请随时向我们提问。