【发布时间】:2014-12-07 01:02:26
【问题描述】:
我在使用 Codeigniter 时遇到了困难。我正在尝试通过将记录 ID 作为 URL 的一部分传递来从 MySQL 数据中获取数据
网址是
localhost/site_folder/page/page_title/2
在上面的 URL 中,page 是控制器的名称,2 是数据库中记录的主 ID(可以是从 1 到9999)。
我的控制器包括这个:
public function index()
{
$this->load->helper('url');
$this->load->model('pages_model');
$id = $this->uri->segment(3,1);
if (empty($id))
{
show_404();
}
$data['page'] = $this->pages_model->get_page($id);
$this->load->view('page',$data);
}
我的 .htaccess 包含这个
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
当我在地址栏中输入localhost/site_folder/page/page_title/2 时,它会抛出 404。
然而,当我输入localhost/site_folder/page 时,它会显示默认数据库条目,如上面segment(3,1) 的第二个值所示。
那么,我应该如何更改 .htaccess 文件以进行可行的重写?
我尝试了以下方法,但没有一个对我有用:
- RewriteRule .* page/$0 [PT,L]
- RewriteRule .* page/(*.)/$0 [PT,L]
- RewriteRule .* page/(?*.)/$ [PT,L]
【问题讨论】:
-
又一个索引“参数”问题,你需要明白这个 url ufo.com/page/1 想要控制器“页面”和方法“1”,没有重写规则会帮助你看到这个question/answer
-
@Kyslik:谢谢。我将 URL 更改为 localhost/ci/page/index/1,它工作正常
标签: php apache .htaccess codeigniter