糯米文學吧

位置:首頁 > 計算機 > php語言

php的apache偽靜態

php語言1.21W

導語:現有的在線網上視頻教程對偽靜態的講解比較簡單,但不全面,小編以一個真實案例來講解偽靜態的製作過程。歡迎參考!

php的apache偽靜態

步驟開始:

(1) 啟用rewrite模塊,在默認情況下,沒有啟用

修改文件,啟動rewrite模塊

去掉LoadModule rewrite_module modules/mod_前的#號即可

(2) 配置我們的虛擬主機

打開虛擬主機的配置文件

# Virtual hosts

Include conf/extra/

修改

<VirtualHost *:80>

DocumentRoot "F:/Appserv/www/xh"

ServerName

<Directory "F:/Appserv/www/xh">

AllowOverride All

</Directory>

</VirtualHost>

我是用的是appserv集成環境,安裝在F盤

(3) 在hosts文件中,配置ip和主機的對應關係

(4) 在F:/Appserv/www/xh目錄下建立cess文件,寫入

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteRule ^([0-9]+)$ $1

RewriteRule ^([A-Z])_(d+)$ _letter/$1/p/$2

RewriteRule ^([A-Z])$ _letter/$1

</IfModule>

解釋一下上面那段話,

訪問 =>

D_ => _letter/D/p/2

=> _letter/D

表示全部歇後語的第二頁,D_表示以字母D打頭的歇後語的第二頁,而單獨一個字母D就表示以D打頭的.以第一頁

好了問題來了,大部分教程只告訴你怎麼在cess中重寫url,那麼我們要讓用户點擊時顯示的也是靜態網址,這樣表意清晰,目錄結構簡單,對用户對搜索引擎都比較友好,我們是不會在地址欄裏頭一個一個的敲入靜態網址的,這個問題該怎麼解決呢?

很簡單,只需對模板中的分頁標籤變量{$page}做一個簡單的正則替換,如下,

首頁列表分頁的替換:

<div class="pagination"><?php echo preg_replace('/(d+)','$',$page); ?></div>

字母列表分頁的替換:<div class="pagination"><?php echo preg_replace('/_letter/([A-Z])/p/(d+)','$1_$',$page); ?></div>

循環26個字母的改寫(去掉沒有結果的那些字母,只需做一個簡單的鏈接改寫,改成 字母 即可,無需正則替換)

for($i=97;$i<=122;$i++) {

$c = strtoupper(chr($i));

if($c==I || $c==U || $c==V) continue;

echo '<li><a href="' . $c . '">'.$c.'</a></li>';

}

好了,偽靜態就這麼簡單,我以這個簡單的例子闡述了偽靜態從頭到尾的過程,方便大家學習和交流,目的在於針對多數教程的一個補充,需要完成更復雜任務的同學,請自行深入研究偽靜態吧!

標籤:PHP Apache 靜態