📜  删除 codeigniter 中的 index.php - PHP (1)

📅  最后修改于: 2023-12-03 15:36:54.329000             🧑  作者: Mango

删除 CodeIgniter 中的 index.php

当你在使用 CodeIgniter 框架时,URL 中会包含 index.php,例如:http://example.com/index.php/controller/method。这样做虽然能让程序正常运行,但却不够美观。然而,你可以删除 index.php,使你的 URL 更加美观和易读。

为什么要删除 index.php?

删除 index.php 有以下好处:

  1. 更美观易读的 URL。
  2. 提高用户体验,让 URL 更加快速地加载。
  3. 更好的 SEO。
如何删除 index.php?
第一步:启用 Apache Rewrite 模块

在使用 CodeIgniter 框架时,你需要启用 Apache Rewrite 模块。这个模块允许你使用 .htaccess 文件配置 URL 重写规则并删除 index.php

如果你的服务器运行的是 Apache 2.2 或者更早版本,你需要通过以下步骤启用 Apache Rewrite 模块:

  1. 打开终端或命令行窗口。
  2. 输入 sudo a2enmod rewrite 命令,回车。
  3. 输入服务器管理员密码,回车。
  4. 再次输入 sudo service apache2 restart 命令,回车。

如果你使用的是 Apache 2.4 或者更高版本,则无需执行以上步骤。Apache 2.4 已经默认启用了 Rewrite 模块。

第二步:创建 .htaccess 文件

在项目根目录下创建一个名为 .htaccess 的文件,并复制以下代码:

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

your_project_folder 替换成你的项目文件夹名称。

第三步:修改 config 文件

打开 CodeIgniter 项目中的 application/config/config.php 文件,将以下代码中的 index.php 部分删除:

$config['index_page'] = '';

最后,你需要确认 mod_rewrite 已经被启用。你可以很简单地测试一下,手动在 URL 后面添加 /controller/method。如果页面正常显示,则说明已经成功删除了 index.php

结论

删除 CodeIgniter 中的 index.php 可以让你的 URL 更加美观和易读。通过启用 Apache Rewrite 模块、创建 .htaccess 文件、修改项目配置文件等步骤,你可以在不破坏程序原有结构的情况下轻松地实现这一目标。