我需要重写这个网址:
domain.com/mali_oglasi/index/1(任意数字)
为:
domain.com/mali_oglasi
在我的.htaccess文件中,我有这段代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
我该怎么做?
答案 0 :(得分:1)
如果您想要的唯一方法是以不同于默认行为的方式映射控制器/方法,则可以使用route.php
配置文件。请参阅此处的官方文档:http://codeigniter.com/user_guide/general/routing.html
在你的情况下你会有这样的事情:
$route['mali_oglasi/index/(:num)'] = 'mali_oglasi';
稍后在您的控制器中,您仍然可以使用以下方式获取原始数字:
$this->uri->rsegment(3);
而不是:
$this->uri->segment(3);
(请参阅此处的官方文档:http://codeigniter.com/user_guide/libraries/uri.html)
修改强>
事实上,如果您只是希望在需要添加参数时摆脱“索引”段,您可能希望与我的第一个答案相反:
$route['mali_oglasi/(:num)'] = 'mali_oglasi/index/$1';
使用该行,“www.yourdomain.com/mali_oglasi/1”形式的每个请求都将由codeigniter解释为好像是“www.yourdomain.com/mali_oglasi/index/1”。这意味着控制器“mali_oglasi”的方法“index”将用于处理您的请求。
如果您需要检索数字,则需要使用:
$this->uri->segment(3);
因此,如果您的客户应该直接访问网址“www.yourdomain.com/mali_oglasi/index/1”,您仍然会检索好的uri细分。 ($this->uri->segment(n);
在route.php
重写uri后给你第n个段,$this->uri->rsegment(n)
在uri被重写之前给你第n个段。)
答案 1 :(得分:0)
我建议将用户重定向到新网址:
控制器中的 mali_oglasi
>>在函数index
放下线
redirect('mali_oglasi');
e.g。
类mali_oglasi扩展了CI_Controller {
function Index($id){
// Note : make sure you have loaded the url helper
redirect('mali_oglasi');
}
}
注意:不要忘记加载url helper
注意:在$config['index_page'] = '';
index
而不是application/config/config.php