由于技术原因,我不想使用.htaccess
从CodeIgniter中的URL中删除index.php。我看过路线部分。我也试过这样的路线:
$route['(:any)'] = 'index.php/$1';
但它没有用。
是否可以使用CodeIgniter中的路由器删除index.php
?
答案 0 :(得分:9)
Is it possible to remove index.php without using .htaccess?
否。它是超越php或codeigniter的东西,它是服务器的东西。
当用户尝试转到localhost/codeigniter/welcome/index
时会发生什么?
MVC基本上隐藏了其文件夹中的所有php文件。并且只提供一种方式让任何用户通过index.php
发生了什么
这很简单,所有MVC框架都会这样做,隐藏代码并使用单个前端文件来处理所有请求并使用路由器类重定向它们。
所以如果你想要hide
index.php那么你需要找到一种方法来告诉你的服务器简单地将任何调用重定向到index.php。
index.php是您网站的访问门,您的服务器需要知道必须向其发送所有请求。某种方式,这就是为什么index.php /必须在你的url中存在或使用一些服务器配置来重定向到它的调用。但总是加载
答案 1 :(得分:1)
我已完成以下操作,以处理您的网址中不需要index.php
的路由。
index.php
重命名为index_ci.php
。在.htaccess
文件中,我有以下内容:
DirectoryIndex index_ci.php index.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index_ci\.php) # do not allow direct access
RewriteRule ^(.*)$ index_ci.php/$1 [L,QSA]
我的routes.php
现在接受没有index.php
前缀的网址。例如:
$route['welcome'] = "welcome";