php – 如何使用codeigniter创建seo友好的URL?

前端之家收集整理的这篇文章主要介绍了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
}
原文链接:https://www.f2er.com/php/445227.html

猜你在找的PHP相关文章