溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中實現網址偽靜態的方法有哪些

發布時間:2020-08-12 10:15:00 來源:億速云 閱讀:210 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關PHP中實現網址偽靜態的方法有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

PHP實現網址偽靜態的方法:1、使用函數【$_SERVER['PATH_INFO']】操作實現;2、配置【.htaccess】來,網站建設時使用【mod_rewrite】模塊來實現偽靜態。

PHP實現網址偽靜態的方法:

1.根據$_SERVER['PATH_INFO']來操作實現。

舉個列子比如你的網站的地址是 http://127.0.0.1/show_new.php/look-id-1.shtml

echo $_SERVER['PATH_INFO']

出來的結果就會是

 /look-id-1.shtml

看到這個我想大家可能已經明白了。完整的demo

index.php

代碼如下:

index.php
 
$conn=mysql_connect("localhost","root","root")or dir("連接失敗");
mysql_select_db("tb_demo",$conn);
$sql="select * from news";
$res=mysql_query($sql);
header("content-type:text/html;charset=utf-8");
echo "<h2>新聞列表</h2>";
echo "<a href='add_news.html'>添加新聞</a><hr/>";
echo "<table>";
echo "<tr><td>id</td><td>標題</td><td>查看詳情</td><td>修改新聞</td></tr>";
while($row=mysql_fetch_assoc($res)){
 echo "<tr><td>{$row['id']}</td><td>{$row['title']}</td><td><a href='show_new.php/look-id-{$row['id']}.shtml'>查看詳情</a></td><td><a href='#'>修改頁面</a></td></tr>";
}
//上面的紅色的地址本來該是show_news.php?act=look&id={$row['id']}
echo "</table>";
//關閉資源
mysql_free_result($res);
mysql_close($conn);

show_new.php頁面

代碼如下:

show_new.php
 
header("Content-type:text/html;charset=utf-8");
$conn=mysql_connect("localhost","root","root");
mysql_select_db("tb_demo",$conn);
mysql_query("set names utf8");
 $pa = $_SERVER['PATH_INFO'];
//$pa  打印出來的值是  /look-id-1.html
//通過正則表達式匹配獲取的url地址
if(preg_match('/^\/(look)-(id)-([\d])\.shtml$/',$pa,$arr)){
 $act = $arr[1]; //這個是請求的look方法
 $id = $arr[3];  //這個是獲取的id 值
 $sql="select * from news  where id= $id";
 $res=mysql_query($sql);
 $res = mysql_fetch_assoc($res);
 echo $res['title']."<hr>".$res['content'];
}else{
 echo "url地址不合法";
}
mysql_close($conn);

看到上面的這個我想大家肯定懂了吧   其實這種方式用的不多的下面的給大家說第二種方法了啊

2.根據配置.htaccess來實現。

Apache的mod_rewrite是比較強大的,在進行網站建設時,可以通過這個模塊來實現偽靜態。

主要步驟如下:

1.檢測Apache是否開啟mod_rewrite功能

可以通過php提供的phpinfo()函數查看環境配置,找到“Loaded Modules”,其中列出了所有apache2handler已經開啟的模塊,如果里面包括“mod_rewrite”,則已經支持,不再需要繼續設置。如果沒有開啟“mod_rewrite”,則打開目錄 apache目錄下的“/apache/conf/” ,找到 httpd.conf 文件,再找到“LoadModule rewrite_module”,將前面的”#”號刪除即表示取用該功能。    如果沒有查找到“LoadModule” 區域,可以在最后一行加入

“LoadModule rewrite_module ,modules/mod_rewrite.so”

(獨占一行),之后重啟apache服務器。再通過phpinfo()函數查看環境配置就有“mod_rewrite”為項了.。

2.讓apache服務器支持.htaccess  

如何讓自己的本地APACHE服務器支持:“htaccess”呢? 只需修改apache的httpd.conf設置就可以讓 APACHE支持“.htaccess”了。打開 APACHE目錄的CONF目錄下的httpd.conf文件,找到: Options FollowSymLinks AllowOverride None 改為 Options FollowSymLinks AllowOverride All 就行了。

3.建立.htaccess文件

建立.htaccess文件時要注意,不能直接建,方法是通過記事本中的另存為菜單,在文件名窗口輸入:“.htaccess”,然后點擊保存。

4.rewrite規則學習

在新建.htaccess文件之后,就在里面寫入以下內容: RewriteEngine on #rewriteengine為重寫引擎開關on為開啟off為關閉 RewriteRule ([0-9]{1,})$index.php?id=$1 在這里,RewriteRule是重寫規則,是用正則表達式的句子,([0-9]{1,})表示由數字組成的,$表示結束標志,表示以數字結束!如果要實現偽靜態頁面,

規則如下:

 RewriteEngine on RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$index.php?action=$1&id=$2

在為個正則表達式中,([a-zA-Z]{1,})-([0-9]{1,}).html$是規則,index.php?action=$1&id=$2是要替換的格式,$1代表第1括號匹配的值,$2代表第二個括號的值,如此類推! 測試PHP腳本如下: index.php文件中的代碼如下:

echo ‘你的Action值為:’ . $_GET['action']; echo ‘ ’; 
echo ‘ID值為:’ . $_GET['id']; ?>

在瀏覽器地址欄輸入:

 localhost/page-18.html

輸出的是:

 你的Action值為:page ID值為:18

關于PHP中實現網址偽靜態的方法有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女