我需要重写这个网址:
domain.com/mali_oglasi/index/1(任何数字)
至:
domain.com/mali_oglasi
在我的 .htaccess 文件中,我有以下代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
我怎样才能做到这一点?
我需要重写这个网址:
domain.com/mali_oglasi/index/1(任何数字)
至:
domain.com/mali_oglasi
在我的 .htaccess 文件中,我有以下代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
我怎样才能做到这一点?
如果您唯一想要的是将控制器/方法映射为不同于默认行为,则可以使用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);
因此,如果您的客户应该直接访问 url “www.yourdomain.com/mali_oglasi/index/1”,您仍然会检索到好的 uri 段。($this->uri->segment(n);
给你route.php
重写uri后的第n段,$this->uri->rsegment(n)
给你重写uri之前的第n段。)
我建议将用户重定向到新的 URL:
在您的控制器mali_oglasi
中 >> 在函数中index
把下面的行
redirect('mali_oglasi');
例如
类 mali_oglasi 扩展 CI_Controller{
function Index($id){
// Note : make sure you have loaded the url helper
redirect('mali_oglasi');
}
}
注意:不要忘记加载url helper
注意: 将in$config['index_page'] = '';
改为index
inapplication/config/config.php