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開發的安全問題
p給了開發者極大的靈活性,但是這也為安全問題帶來了潛在的隱患,下面是小編分享的PHP開發的安全問題,一起來看一下吧。安全保護一般性要點不相信表單對於一般的Javascript前台驗證,由於無法得知用户的行為,例如關閉了瀏覽器的javascript引擎,這樣通過POST惡意數據到服...
-
10個免費PHP腳本下載的網站
導語:你知道哪些網站可以免費寫真PHP腳步語言嗎?下面的是本站小編為大家蒐集的10個提供免費PHP腳本下載的網站,希望對你能有所幫助。Junkyard這裏提供免費的PHP腳本下載。包括PHP資源,教程,文章等等。為你提供分類列表,包括免費的PHP腳本,商業PHP腳本,PHP資源,PHP教程,網...
-
用PHP讀取文件的正確方法
處理諸如PHP之類的現代編程語言的樂趣之一就是有大量的選項可用。PHP可以輕鬆地贏得Perl的座右銘There‘smorethanonewaytodoit(並非只有一種方法可做這件事),尤其是在文件處理上。但是在這麼多可用的選項中,哪一種是完成作業的最佳工具?當然,實際答案取決於...
-
PHP考試筆試題
用寶珠打扮自己,不如用知識充實自己。以下是小編為大家搜索整理的PHP考試筆試題,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!1、{PHP題目}標識符是變量的名稱。PHP中的標識符用$+變量名來表示。標識符在PHP中遵循下列選項中的那些規則?()...