CodeIgniter:是否可以在不使用.htaccess的情况下删除index.php?

its*_*sar 13 .htaccess codeigniter codeigniter-routing

由于技术原因,我不想使用.htaccess从CodeIgniter中的URL中删除index.php.我看过路线部分.我也尝试过这样的路线:

$route['(:any)'] = 'index.php/$1';
Run Code Online (Sandbox Code Playgroud)

但它没有用.

是否可以index.php使用CodeIgniter中的路由器删除?

Zal*_*oza 9

Is it possible to remove index.php without using .htaccess?
Run Code Online (Sandbox Code Playgroud)

不,这是超出php或codeigniter的东西,它是服务器的东西.

为什么?

当用户试图去时会发生什么localhost/codeigniter/welcome/index

MVC基本上隐藏了其文件夹中的所有php文件.并且只提供一种方式让任何用户通过您的代码进行交互index.php

会发生什么

  1. 对您的网站的HTTP请求定向到index.php
  2. index.php加载codeigniter引导程序并调用codeigniter路由器
  3. 路由器查找url类型(欢迎/索引)然后从控制器文件夹内部获取文件welcome并调用索引函数.

这很简单,所有MVC框架都可以做,隐藏代码并使用单个前端文件来处理所有请求并使用路由器类重定向它们.

因此,如果您想要hideindex.php,那么您需要找到一种方法告诉您的服务器只需将任何调用重定向到index.php.

index.php是您网站的访问门,您的服务器需要知道必须将所有请求发送给它.某种方式,这就是为什么index.php /必须在你的url中存在或使用一些服务器配置来重定向到它的调用.但它总是被加载

  • route是一个类..它所做的就是获取PHP $ _SERVER ['url']并将其爆炸以找到正确的控制器.我认为你缺少一件事..你在codeigniter项目中打开的每一页都在`index.php`里面打开.`index.php`是唯一的公共文件.其他文件包含在`index.php`中,所以你的所有控制器等都包含在index.php里面的`include('controller/welcome`)`,而处理这个的类包括..是路由类 (2认同)