我在使用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