我在使用Codeigniter时遇到困难。我试图通过将记录ID作为URL的一部分,以获得从MySQL数据数据Codeigniter .htaccess数据库重写
的网址是要
本地主机/ site_folder /页/ PAGE_TITLE/2
在上面的URL中,页面是控制器的名称,而是数据库中记录的主要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文件以进行可行的重写呢?
我曾尝试以下,但没有为我工作:。
- 重写规则*页/ $ 0 [PT,L]
- 重写规则*页/(*.)/$ 0 [PT,L]
- 重写规则。*页面/(?*.)/$ [PT,L]
另一个索引“参数”的问题,你需要明白,这个网址ufo.com/page/1希望控制器“页面”和方法“1”,没有重写规则会帮助你看到这个[问题/回答](http://stackoverflow.com/a/27220596/1564365) – Kyslik 2014-12-07 16:50:56
@Kyslik:谢谢。我将URL更改为http:// localhost/ci/page/index/1,并且工作正常 – 2014-12-07 20:54:37