php實現偽靜態二種方法介紹

來源:互聯網
上載者:User
  1. /**
  2. * php偽靜態
  3. * bbs.it-home.org
  4. */
  5. $conn=mysql_connect("localhost","root","root")or dir("串連失敗");
  6. mysql_select_db("tb_demo",$conn);
  7. $sql="select * from news";
  8. $res=mysql_query($sql);
  9. header("content-type:text/html;charset=utf-8");
  10. echo "

    新聞列表

    ";
  11. echo "添加新聞";
  12. echo "
  13. echo "
  14. while($row=mysql_fetch_assoc($res)){
  15. }
  16. "; ";
  17. echo "
  18. ";
  19. //上面的紅色的地址本來該是show_news.php?act=look&id={$row['id']}
  20. echo "
  21. id 標題 查看詳情 修改新聞
    {$row['id']} {$row['title']} 查看詳情 修改頁面
    ";
  22. //關閉資源
  23. mysql_free_result($res);
  24. mysql_close($conn);
  25. ?>
複製代碼

2、show_new.php頁面

  1. header("Content-type:text/html;charset=utf-8");
  2. $conn=mysql_connect("localhost","root","root");
  3. mysql_select_db("tb_demo",$conn);
  4. mysql_query("set names utf8");
  5. $pa = $_SERVER['PATH_INFO'];
  6. //$pa 列印出來的值是 /look-id-1.html
  7. //通過Regex匹配擷取的url地址
  8. if(preg_match('/^\/(look)-(id)-([\d])\.shtml$/',$pa,$arr)){
  9. $act = $arr[1]; //這個是請求的look方法
  10. $id = $arr[3]; //這個是擷取的id 值
  11. $sql="select * from news where id= $id";
  12. $res=mysql_query($sql);
  13. $res = mysql_fetch_assoc($res);
  14. echo $res['title']."".$res['content'];
  15. }else{
  16. echo "url地址不合法";
  17. }
  18. mysql_close($conn);
  19. ?>
複製代碼

二、根據配置.htaccess來實現先說下.htaccess檔案怎麼建立吧,在網站根目錄下建立個記事本然後雙擊開啟點擊另存新檔 檔案名稱寫成.htaccess ,檔案類型選擇所有檔案,編碼選擇utf-8的編碼好的這是你就在目錄看到這個.htaccess檔案了。

首先,在apache 開啟mod_rewrite.so,AllowOverride None 這裡有兩處 替換為 AllowOverride All。

比如href 地址寫成 one_new-id-1.shtml //這個意思是one_new.php?id=1這裡的.htaccess這樣寫:

  1. #寫你的rewrite規則
  2. RewriteEngine On
  3. # 可以配置多個規則,匹配的順序是從上到下
  4. RewriteRule one_new-id-(\d+)\.shtml$ one_new.php?id=$1 //這裡的$1 代表的是第一個參數啊
  5. RewriteRule abc_id(\d+)\.html$ error.php
  6. #設定404錯誤
  7. #ErrorDocument 404 /error.php
複製代碼

在one_new.php 頁面echo $_GET['id'] 肯定會輸出 id的值了。

就介紹這些吧,php實現偽靜態還是很簡單的,希望大家多多實踐,寫出更加靈活而輕便的偽靜態規則。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.