如何使用基于url中的id的动态名称重写php中的url

时间:2014-09-26 06:56:52

标签: php url rewrite

如何使网址为seo友好。 现在链接就像 http://www.example.com/memorial.php?id=354

我们希望它是http://www.example.com/firstname-middlename-lastname

所以这里有来自db的第一个,最后一个和中间名,基于id。

提前感谢。

2 个答案:

答案 0 :(得分:0)

您可以从Db中选择详细信息 您可以使用标题(“位置:http://www.example.com/firstname-middlename-lastname”); / *重定向浏览器* /

重定向

答案 1 :(得分:0)

使用此方法 -

  1. 在表格中添加slug coloumn
  2. 选择将slug添加到用户或动态创建slug并将其插入表中。
  3. 编写ReWriteRule以了解请求
  4. 示例: - 用于添加动态slug。

    1.User Table Schema就像 -

    +----------------+---------------------+------+-----+---------+----------------+
    | Field          | Type                | Null | Key | Default | Extra          |
    +----------------+---------------------+------+-----+---------+----------------+
    | user_id        | int(11)             | NO   | PRI | NULL    | auto_increment |
    | first_name     | varchar(255)        | YES  |     | NULL    |                |
    | middle_name    | varchar(255)        | YES  |     | NULL    |                |
    | last_name      | varchar(255)        | YES  |     | NULL    |                |
    | slug           | varchar(255)        | NO   |     | 0       |                |
    +----------------+---------------------+------+-----+---------+----------------+
    
    1. 在将用户信息插入User表之前,使用正则表达式来支持dnyamic seo slug-

      function seo_str_replace($str){
              $str = preg_replace("/^[^a-z0-9]+/", "", $str);
              $str = preg_replace("/[^a-z0-9]+$/", "", $str);
              $str = preg_replace("/[^a-z0-9]/", "-", $str);
              return $str;
      }
      
      $first_name = $_POST['first_name'];
      $middle_name = $_POST['middle_name'];
      $last_name = $_POST['last_name'];
      
      $slugArr = Array();          
      
      if(!empty($first_name)){
         $slugArr[] = $first_name;
      }
      
      
      if(!empty($middle_name)){
         $slugArr[] = $middle_name;
      }
      
      
      if(!empty($last_name)){
         $slugArr[] = $last_name;
      }
      $slug = seo_str_replace(implode('-',$slugArr);
      
    2. 将slug插入表“User”

      $sql = "insert into user(first_name,middle_name,last_name,slug)values('$first_name','$middle_name','$last_name','$slug')";
      
    3. 要获取子弹,您必须使用网址重写规则 http://www.example.com/memorial/firstname-middlename-lastname -

      RewriteRule ^/memorial/(.*)$ /memorial.php?slug=$1
      
    4. 在memorial.php上获取slug&将其搜索到表格中。

       $slug = $_GET['slug'];
       $sql= "select user_id from User where slug = '".$slug."'";
      
       <!---- here Start your code --->
      
    5. 注意:不要忘记在slug列上添加索引。