您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關(guān)PHP中實現(xiàn)網(wǎng)址偽靜態(tài)的方法有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
PHP實現(xiàn)網(wǎng)址偽靜態(tài)的方法:1、使用函數(shù)【$_SERVER['PATH_INFO']】操作實現(xiàn);2、配置【.htaccess】來,網(wǎng)站建設時使用【mod_rewrite】模塊來實現(xiàn)偽靜態(tài)。
PHP實現(xiàn)網(wǎng)址偽靜態(tài)的方法:
1.根據(jù)$_SERVER['PATH_INFO']
來操作實現(xiàn)。
舉個列子比如你的網(wǎng)站的地址是 http://127.0.0.1/show_new.php/look-id-1.shtml
echo $_SERVER['PATH_INFO']
出來的結(jié)果就會是
/look-id-1.shtml
看到這個我想大家可能已經(jīng)明白了。完整的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>"; //關(guān)閉資源 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.根據(jù)配置.htaccess
來實現(xiàn)。
Apache的mod_rewrite是比較強大的,在進行網(wǎng)站建設時,可以通過這個模塊來實現(xiàn)偽靜態(tài)。
主要步驟如下:
1.檢測Apache是否開啟mod_rewrite
功能
可以通過php提供的phpinfo()函數(shù)查看環(huán)境配置,找到“Loaded Modules”,其中列出了所有apache2handler已經(jīng)開啟的模塊,如果里面包括“mod_rewrite”,則已經(jīng)支持,不再需要繼續(xù)設置。如果沒有開啟“mod_rewrite”,則打開目錄 apache目錄下的“/apache/conf/” ,找到 httpd.conf 文件,再找到“LoadModule rewrite_module”,將前面的”#”號刪除即表示取用該功能。 如果沒有查找到“LoadModule” 區(qū)域,可以在最后一行加入
“LoadModule rewrite_module ,modules/mod_rewrite.so”
(獨占一行),之后重啟apache服務器。再通過phpinfo()函數(shù)查看環(huán)境配置就有“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規(guī)則學習
在新建.htaccess文件之后,就在里面寫入以下內(nèi)容: RewriteEngine on #rewriteengine為重寫引擎開關(guān)on為開啟off為關(guān)閉 RewriteRule ([0-9]{1,})$index.php?id=$1 在這里,RewriteRule是重寫規(guī)則,是用正則表達式的句子,([0-9]{1,})表示由數(shù)字組成的,$表示結(jié)束標志,表示以數(shù)字結(jié)束!如果要實現(xiàn)偽靜態(tài)頁面,
規(guī)則如下:
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$是規(guī)則,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
關(guān)于PHP中實現(xiàn)網(wǎng)址偽靜態(tài)的方法有哪些就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。