ReWrite學習筆記

來源:互聯網
上載者:User

Submitted by on 2007, July 29, 1:20 PM. 網站|PHP學習

首先,你的空間得支援ReWrite,具體的設定我就不說了,上搜尋引擎查一下很多的。我這裡就講很簡單的入門。

比如,下面,我要實現這樣的URL:
http://xxx.com/0725
http://xxx.com/0726
http://xxx.com/0727

上面xxx.com是一個記錄《今天是》這樣的曆史內容的一個測試網站。上面連結的意思,就是顯示07月25日的曆史上發生了什麼事情,類似這樣。這樣看起來就很美觀、整齊了。要不然,可能的地址就是:
http://xxx.com/index.php?t...
http://xxx.com/index.php?t...
http://xxx.com/index.php?t...

現在我就是要實現把 index.php?today= 隱藏掉。以下是代碼:

1..htaccess 檔案
<IfModule mod_rewrite.c> 
  RewriteEngine On 
  RewriteBase / 
  RewriteCond %{REQUEST_FILENAME} !-f 
  RewriteCond   %{REQUEST_FILENAME} !-d 
  RewriteRule ^([0-9]+)$   /index.php?today=$1 
  </IfModule>

粗體字這裡我說明一下,其它的按這個格式吧,具體我現在也不理解。
[0-9]的意思是,參數只能是0~9這些數字,如果你要包含任何字元,就改為:

RewriteRule ^(.+)$ /index.php?today=$1  

這裡[0-9]改為了. ,這個.就代表任一字元。當然複雜的還很複雜,我們暫時不管。

2.index.php檔案 

PHP代碼
  1. <?php    
  2. //rewrite 測試    
  3. $uid =$_REQUEST[’today’];    
  4. ?>    
  5. <HTML>    
  6. <HEAD>    
  7. <TITLE>rewrite 測試</TITLE>    
  8. </HEAD>    
  9. <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080">    
  10. 今天是<?php echo $today;?>,看看曆史上的今天都發生了什麼事情?<br>    
  11. ……    
  12. </BODY>    
  13. </HTML>  

這裡參數就會傳遞給index.php檔案裡的$today,在這個程式內,你就可以根據參數,進行處理,如查詢資料庫啦、做運算啦等,然後再顯示相應的資料出來,就可以了。

 

 

 

  1. <?php    
  2. //url樣本:soft.php/1,100,8630.html    
  3. //利用server變數 取得PATH_INFO資訊 該例中為 /1,100,8630.html  也就是執行指令碼名後面的部分    
  4. if(@$path_info =$_SERVER["PATH_INFO"]){    
  5.     if(preg_match("///(/d+),(/d+),(/d+)/.html/si",$path_info,$arr_path)){    
  6.         $gid     =intval($arr_path[1]); //取得值 1    
  7.         $sid     =intval($arr_path[2]);  //取得值100    
  8.         $softid  =intval($arr_path[3]);  //取得值8630    
  9.         //相當於soft.php?gid=1&sid=100&softid=8630    
  10.     }else die("Path:Error!");    
  11. }else die("Path:Nothing!");    
  12.   
  13. echo($gid);    
  14. echo("<br>");    
  15. echo($sid);    
  16. echo("<br>");    
  17. echo($softid);    
  18. ?>  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.