📜  从 codeigniter 中的 url 中删除 public (1)

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

从 CodeIgniter 中的 URL 中删除 public

如果你使用的是 CodeIgniter 框架,你可能已经注意到在 URL 中会出现 public 的字符串。这是因为 CodeIgniter 默认会将 index.php 放在 public 目录下作为入口文件,因此在 URL 中需要指定该目录。

然而,这样的 URL 看起来不太美观,而且也会影响 SEO。因此,我们需要从 CodeIgniter 中的 URL 中删除 public 目录。

以下是实现该功能的步骤:

修改 .htaccess 文件

.htaccess 文件中的以下代码:

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

修改为:

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

这样,访问你的网站时就不需要在 URL 中指定 public 目录了。

修改 config.php 文件

打开 application/config/config.php 文件,将以下代码:

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

修改为:

$config['index_page'] = '';
修改 .htaccess 文件(可选)

如果你的网站是放在子目录下的,例如 http://example.com/myapp,那么你需要在 .htaccess 文件中添加以下代码:

RewriteBase /myapp/

需要注意的是,将 myapp 替换为你自己的子目录名称。

通过以上步骤,你就可以从 CodeIgniter 中的 URL 中删除 public 目录了。

注意:在进行上述修改之前,请备份相关文件以应对万一。

参考文献:

  • CodeIgniter User Guide: https://codeigniter.com/user_guide/
  • Removing "public" from CodeIgniter URL: https://stackoverflow.com/questions/29013871/removing-public-from-codeigniter-url