mod_rewrite是apache的乙個非常強大的功能,它可以實現偽靜態頁面。下面我詳細說說它的使用方法
1.檢測apache是否支援mod_rewrite
通過php提供的phpinfo()函式檢視環境配置,通過ctrl+f查詢到「loaded modules」,其中列出了所有apache2handler已經開啟的模組,如果裡面包括「mod_rewrite」,則已經支援,不再需要繼續設定。
如果沒有開啟「mod_rewrite」,則開啟目錄 您的apache安裝目錄「/apache/conf/」 下的 httpd.conf 檔案,通過ctrl+f查詢到「loadmodule rewrite_module」,將前面的」#」號刪除即可。
如果沒有查詢到,則到「loadmodule」 區域,在最後一行加入「loadmodule rewrite_module ,modules/mod_rewrite.so」(必選獨佔一行),然後重啟apache伺服器即可。
2.讓apache伺服器支援.htaccess
如何讓自己的本地apache伺服器支援」.htaccess」呢?其實只要簡單修改一下apache的httpd.conf設定就可以讓 apache支 持.htaccess了。開啟httpd.conf檔案(在那裡? apache目錄的conf目錄裡面),
用文字編輯器開啟後,查詢
options followsymlinks
allowoverride none
改為options followsymlinks
allowoverride all
就可以了。
3.建立.htaccess 檔案
有1種最簡單的方法建立.htaccess檔案:
用記事本 開啟,點選檔案–另存為,在檔名視窗輸入」.htaccess」,注意是整個綠色部分,
也就是包含英文引號,然後點選儲存就行了。
4.rewrite規則學習
我們新建乙個.htaccess檔案之後,就在裡面寫入以下內容:
rewriteengine on #rewriteengine為重寫引擎開關on為開啟off為關閉
rewriterule ([0-9])$index.php?id=$1
我講解一下rewriterule:rewriterule是重寫規則,支援正規表示式的,上面的([0-9])是指由數
字組成的,$是結束標誌,說明是以數字結束!
好吧,現在我們可以實現偽靜態頁面了,寫下一下的規則:
rewriteengine on
rewriterule ([a-za-z])-([0-9]).html$index.php?action=$1&id=$2
([a-za-z])-([0-9]).html$是規則,index.php?action=$1&id=$2是要替換的格式,$1代表第
乙個括號匹配的值,$2代表第二個,如此類推!!
我們寫乙個處理的php指令碼:
index.php
php**
echo 『你的action是:』 . $_get['action'];
echo 『
』;echo 『你的id是:』 . $_get['id'];
?>
好了,我們現在在瀏覽器中輸入:
localhost/page-18.html
輸出的是:
你的action是:page
你的id是:18
php偽靜態配置
配置虛擬主機和偽靜態 1.開啟apache的rewrite模組 loadmodule rewrite module modules mod rewrite.so 2.開啟虛擬主機功能 3.修改conf extra httpd vhosts.conf檔案 documentroot f wamp www...
PHP 偽靜態技術
下面是生成偽靜態位址和逆轉偽靜態位址的兩個函式,這兩個函式在相應的位置引用就可以實現將轉成這樣的形式。使用參考 將此ion list page 2 位址生成 action list page 2.htm形式 url ion list page 2 urlstr makeurlhtml url ech...
PHP偽靜態步驟
header content type text html charset utf 8 dsn mysql host localhost dbname seven db new pdo dsn,root db exec set names utf8 分頁 count 11 page size 3 總...