php – 如何使用codeigniter创建seo友好的URL?
|
我几天都在倚靠Codeigniter,我想知道在Codeigniter上创建博客,但是我想到了两个问题. 1.如何像WordPress一样使用创建SEO友好URL. 2.导航到该URL后如何获取页面内容. 我创建了表tbl_post,我存储帖子的详细信息和表结构是: 1. ID 2. Title 3. Content 4. Tags 5. Status 6. Create Time 7. Update Time 8. Author ID 9. Status 现在我想从上表创建动态帖子URL. 例如:http://www.example.com/hello-world/ 导航到上面的URL后,如何获取hello-world帖子的内容? 您已注意到我没有将任何ID传递给示例URL以获取内容.任何建议,如果我传递ID而不想显示在URL字符串中? 而已. 如果你以正确的方式引导我,我会感激的. 谢谢. 代码审查 主页(我的博文列表视图) 家庭控制器: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Home extends CI_Controller {
public function index()
{
$this->load->model("HomeModel"); // Load home model
$data['postData'] = $this->HomeModel->postData(); // Get posts data from postData function
$this->load->view("global_header"); // Include header area
$this->load->view("home",$data);
$this->load->view("global_footer"); // Include footer area
}
}
家庭型号: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class HomeModel extends CI_Model{
public function postData()
{
$this->db->select('tbl_post.*,tbl_user.first_name,tbl_user.last_name');
$this->db->from('tbl_post');
$this->db->join('tbl_user','tbl_post.author_id = tbl_user.id','Left Join');
$query = $this->db->get();
return $query->result();
}
}
家庭观点 <?php for($i=0; $i<count($postData); $i++): ?>
<?php
$postID = $postData[$i]->id;
$postTitle = $postData[$i]->title;
?>
<a href="<?php echo base_url("$postID/$postTitle"); ?>">
<h2 class="post-title">
<?php echo $postTitle; ?>
</h2>
</a>
</div>
<hr>
<?php endfor; ?>
现在我的URL看起来像这样:http://example.com/1/man-must-explore-and-this-is-exploration-at-its-greatest Domain: http://example.com ID: 1 Title: man-must-explore-and-this-is-exploration-at-its-greatest 我创建了另一个视图(帖子)来显示帖子内容和帖子ID(从URL获取ID). 我走对了路吗?需要你的建议来改善我的逻辑. 回答第一个问题CodeIgnitor是oop概念框架,它使用Model View Controller.(MVC架构). 所以每次点击网站都会转到Controller.然后,只有控制器将决定显示什么或下一步做什么. 如果有3页(例如:家,产品,请联系我们),那么使用3个控制器(home =使用默认控制器,产品=使用产品,联系我们=使用联系方式). 那么您的URL将是(如果您点击产品)它显示www.test.com/product,如果您点击联系它显示www.test.com/contact. 回答第二个问题 在你的表中始终保持自动增量ID(必须).然后你可以将id传递给控制器,并可以获得你想要的数据. 对于前我加载一些内容到页面.(产品内容). 您的数据显示页面(查看) <?php
foreach ($product as $variable) // $product is data array which you send data
{
?>
<div class="content">
<a href="[call your controller here,in my `product`]/[*call sub function*,i use `show`]/ [*then pass here to product id*]<?php echo $variable['id']"></a>
<div>
<?php
}
?>
所以你的网址看起来像(点击产品后,该产品的假设ID为25)www.test.com/product/show/25 然后在产品控制器中创建 public function show($id)//$id variable to assign value which coming through URL
{
1. your code
2. then load view
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
