📜  codeigniter apache 删除 index.php (1)

📅  最后修改于: 2023-12-03 14:40:08.293000             🧑  作者: Mango

CodeIgniter Apache 删除 index.php

在 CodeIgniter 开发中,默认访问一个页面时会包含 index.php 文件名。然而,有时候我们希望能够去掉 index.php,使 URL 更加美观。本指南将介绍如何在 Apache 服务器上配置,以删除 CodeIgniter 中的 index.php

步骤一:启用 mod_rewrite

首先,确保你的服务器已经启用了 mod_rewrite 模块。在大多数情况下,这个模块在 Apache 中已经默认启用了。如果尚未启用,请按照服务器环境的要求启用它。

步骤二:编辑 .htaccess 文件
  1. 在项目的根目录下创建一个名为 .htaccess 的文件,如果已存在则直接编辑。
  2. 在文件中,添加以下代码:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

这段代码的作用是将所有请求重定向到 index.php 文件中,但不包括存在的文件和目录。

步骤三:配置 CodeIgniter

现在我们需要告诉 CodeIgniter 使用 “uri_protocol” 配置来处理 URL。打开位于 application/config/config.php 文件,找到以下代码:

$config['index_page'] = 'index.php';

将其修改为:

$config['index_page'] = '';

这样就是告诉 CodeIgniter 不使用 index.php 作为默认的 URL。

完成!

现在,当你访问 CodeIgniter 网站时,URL 将不再包含 index.php。例如,http://example.com/index.php/controller/method 将变为 http://example.com/controller/method

确保你的 Apache 服务器已成功配置了 .htaccess,并且 CodeIgniter 已被正确配置,以避免出现任何问题。

请注意,如果你使用的是不同的服务器配置,例如 Nginx,则将不同于以上所述。在这种情况下,请参考相应服务器的文档以进行正确的配置。

希望本指南对你有所帮助!