国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php偽靜態的寫法,apache偽靜態規則

2024-05-04 21:48:00
字體:
來源:轉載
供稿:網友

在php中我們要做偽靜態可以直接利用php來處理url,但這種偽靜態不是標準的可以說看起來像水貨一樣的,只是找個心里舒服了,當然如果要實現真正的偽靜態我們可以使用apache Rewrite偽靜態模塊來實例,下面大家來看看.

php程序實現偽靜態url,偽靜態方法一:

  1. <?php 
  2. // localhost/php100/test.php?id|1@action|2 
  3. $Php2Html_FileUrl = $_SERVER["REQUEST_URI"]; 
  4. echo $Php2Html_FileUrl."<br>";// /php100/test.php?id|1@action|2 
  5. $Php2Html_UrlString = str_replace("?","",str_replace("/"""strrchr(strrchr($Php2Html_FileUrl"/"),"?"))); 
  6. echo $Php2Html_UrlString."<br>";// id|1@action|2 
  7. $Php2Html_UrlQueryStrList = explode("@"$Php2Html_UrlString); 
  8. print_r($Php2Html_UrlQueryStrList);// Array ( [0] => id|1 [1] => action|2 ) 
  9. echo "<br>"
  10. foreach($Php2Html_UrlQueryStrList as $Php2Html_UrlQueryStr
  11. $Php2Html_TmpArray = explode("|"$Php2Html_UrlQueryStr); 
  12. print_r($Php2Html_TmpArray);// Array ( [0] => id [1] => 1 ) ; Array ( [0] => action [1] => 2 ) 
  13. echo "<br>"
  14. $_GET[$Php2Html_TmpArray[0]] = $Php2Html_TmpArray[1]; 
  15. //echo '假靜態:$_GET變量<br />'; 
  16. print_r($_GET); // Array ( [id|1@action|2] => [id] => 1 [action] => 2 ) 
  17. echo "<br>"
  18. echo "<hr>"
  19. echo $_GET[id]."<br>";// 1 
  20. echo $_GET[action];// 2 
  21. ?> 

php程序實現偽靜態url,偽靜態方法二:

  1. <?php 
  2. // localhost/php100/test.php/1/2 
  3. $filename = basename($_SERVER['SCRIPT_NAME']); 
  4. echo $_SERVER['SCRIPT_NAME']."<br>";// /php100/test.php 
  5. echo $filename."<br>";// test.php 
  6. if(strtolower($filename)=='test.php'){ 
  7. if(!emptyempty($_GET[id])){ 
  8. $id=intval($_GET[id]); 
  9. echo $id."<br>"
  10. $action=intval($_GET[action]); 
  11. echo $action."<br>"
  12. }else
  13. $nav=$_SERVER['REQUEST_URI']; 
  14. echo "1:".$nav."<br>";// /php100/test.php/1/2 
  15. $script=$_SERVER['SCRIPT_NAME']; 
  16. echo "2:".$script."<br>";// /php100/test.php 
  17. $nav=ereg_replace("^$script","",urldecode($nav)); 
  18. echo $nav."<br>"// /1/2 
  19. $vars=explode("/",$nav); 
  20. print_r($vars);// Array ( [0] => [1] => 1 [2] => 2 ) 
  21. echo "<br>"
  22. $id=intval($vars[1]); 
  23. $action=intval($vars[2]); 
  24. echo $id.'&'.$action
  25. ?> 

php程序實現偽靜態url,偽靜態方法三:

  1. <?php 
  2.  
  3. function mod_rewrite(){ 
  4. global $_GET
  5. $nav=$_SERVER["REQUEST_URI"]; 
  6. echo $nav."<br>"
  7. $script_name=$_SERVER["SCRIPT_NAME"]; 
  8. echo $script_name."<br>"
  9. $nav=substr(ereg_replace("^$script_name","",urldecode($nav)),1); 
  10. echo $nav."<br>"
  11. $nav=preg_replace("/^.ht(m){1}(l){0,1}$/","",$nav);//這句是去掉尾部的.html或.htm 
  12. echo $nav."<br>"
  13. $vars = explode("/",$nav); 
  14. print_r($vars); 
  15. echo "<br>"
  16. for($i=0;$i<Count($vars);$i+=2){ 
  17. $_GET["$vars[$i]"]=$vars[$i+1]; 
  18. return $_GET
  19. mod_rewrite(); 
  20. $year=$_GET["year"];//結果為'2006' 
  21. echo $year."<br>"
  22. $action=$_GET["action"];//結果為'_add' 
  23. echo $action
  24. ?> 

php程序實現偽靜態url,偽靜態方法四:

  1. <?php 
  2. //利用server變量 取得PATH_INFO信息 該例中為 /1,100,8630.html 也就是執行腳本名后面的部分 
  3. if(@$path_info =$_SERVER["PATH_INFO"]){ 
  4. //正則匹配一下參數 
  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. }else die("Path:Error!"); 
  10. //相當于soft.php?gid=1&sid=100&softid=8630 
  11. }else die('Path:Nothing!'); 
  12. ?> 

如果你有服務器權限我覺得還是使用apache偽靜態.

一、Apache配置:

進入/etc/httpd/conf/目錄下,打開httpd.conf文件,啟用rewrite:

# LoadModule rewrite_module modules/mod_rewrite.so 去除前面的 #

啟用.htaccess

AllowOverride None 修改為:AllowOverride All

二、Rewrite寫法:

服務器有配置文件不可能由我們來改,所以大多情況下要在網站的根目錄下建一個.htaccess文件,代碼如下:

  1. RewriteEngine on //啟動rewrite引擎 
  2. RewriteRule ^/index([0-9]*).html$ /index.php?id=$1 //“([0-9]*)” 代表范圍 用(.*)代表所有,下同。 
  3. RewriteRule ^/index([0-9]*)/$ /index.php?id=$1 [R] //虛擬目錄  

三、mod_rewrite 規則修正符

1) R 強制外部重定向

2) F 禁用URL,返回403HTTP狀態碼。

3) G 強制URL為GONE,返回410HTTP狀態碼。

4) P 強制使用代理轉發。

5) L 表明當前規則是最后一條規則,停止分析以后規則的重寫。

6) N 重新從第一條規則開始運行重寫過程。

7) C 與下一條規則關聯

如果規則匹配則正常處理,以下修正符無效

8) T=MIME-type(force MIME type) 強制MIME類型

9) NS 只用于不是內部子請求

10) NC 不區分大小寫

11) QSA 追加請求字符串

12) NE 不在輸出轉義特殊字符 %3d$1 等價于 =$1

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乡城县| 泰宁县| 乌鲁木齐县| 翼城县| 连城县| 新余市| 平武县| 大连市| 调兵山市| 宁津县| 澎湖县| 德州市| 翁牛特旗| 大理市| 金沙县| 民权县| 永登县| 远安县| 海兴县| 福安市| 始兴县| 渑池县| 紫阳县| 伊春市| 安龙县| 恩平市| 尉氏县| 江阴市| 江阴市| 金塔县| 永修县| 响水县| 红河县| 赤水市| 翼城县| 施甸县| 墨江| 永靖县| 辉南县| 社旗县| 灵丘县|