隐藏PHP CodeIgniter URL中的默认控制器名称

时间:2011-06-05 11:32:23

标签: php .htaccess url codeigniter mod-rewrite

我正在尝试使用htaccess从CodeIgniter中的URL中删除默认控制器名称;我隐藏了index.php,但也想摆脱当前称为con_index的默认控制器。

例如,如果网站root是mysite.com, mysite.com/con_index/function1将更改为mysite.com/function1,依此类推。

所有其他控制器都可以保留在url中,所以如果我有另一个名为location1的名为locations的控制器,mysite.com/locations/location1将保持不变。

我认为这会产生一个更传统的结构,而不是在你离开网站根目录的第二个类和功能名称中弹出。为了实现这一点,我的牙齿咬牙切齿,有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

在你的.htaccess中试试这个:

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^(.*)\/$ index.php/com_index/$1 [nc] [L]

这将用$1替换括号内的任何出现。因此,当您拨打www.example.com/function_1/时,它实际上会调用www.example.com/com_index/function_1

但是,我不确定它是否适用于CI,因为CI可能对访问URL路由有一些限制。

答案 1 :(得分:0)

您是否尝试过使用

$route['default_controller'] = 'con_index'

CodeIgniter Default Controller

答案 2 :(得分:0)

enter code here $ route ['(:any)'] ='controller_name / function_name / $ 1';

它将替换控制器,然后您可以尝试通过不将控制器名称放入其中来访问URL。