PHP的mod_rewrite重寫模組將.php尾碼換成.html,mod_rewrite.php
apache Rewrite
mod_rewrite的魔力
簡單舉例:建立三個檔案,分別命名為 test.html,test.php和.htaccess
test.html 輸入:
<h1>This is the HTML file.</h1>
test.php輸入:
<h1>This is the php file.</h1>
.htaccess輸入:
RewriteEngine on
RewriteRule ^/?test\.html$ test.php [L]
將以上三個檔案放test測試檔案夾下,在瀏覽器錄入:
http://www.example.com/test/test.html
在瀏覽器中將 www.example.com替換成你自己的網域名稱。如果運行結果顯示“This is the PHP file”,那麼運行成功,如果結果顯示“This is the Html file”,那麼肯定是哪裡出了問題,請你再仔細檢查下。
如果你測試成功,你是否發現了我們錄入了test.html的檔案名稱,確執行了test.php檔案,是的,你已經初識了mod_rewrite的神奇。
在想要將.php尾碼換成.html的目錄下建立並命名為.htaccess檔案。
輸入下一段,
RewriteEngine onRewriteRule ^/?([a-zA-Z0-9]+)\.html$ $1.php [L]
建立無檔案尾碼名連結
如果你想使你的PHP網站的連結更加簡潔易記-或者隱藏檔案的尾碼名,試試這個:
RewriteRule ^/?([a-z]+)$ $1.php [L]
php 尾碼改成html
這個就叫做靜態化了,常見的方法有幾種:
1、用smarty模板,是一種緩衝機制,簡單學習一下就好了;
2、把頁面全部產生了靜態html檔案,常見的方法是按照網頁的規律,用正則匹配網址,然後確定一個靜態html路徑,路徑存到資料庫裡,產生為html檔案,然後連結全部讀取html的路徑。
3、偽靜態,就是伺服器把地址偽裝成html格式的,其實不是真正的靜態html檔案。可以搜尋:apache rewrite 重寫。是根據網址的規則,用Regex匹配的,比如新聞頁面news.php?id=100,匹配成news/100.html。
助PHP偽靜態,怎將動態PHP頁面改為偽靜態頁面
你咋發兩遍?。。。
=============
首先要確定你的Apache啟用了mod_rewrite模組,並且將http.conf檔案中網站所在目錄的AllowOverride None 改為 AllowOverride all
然後在程式目錄下建立一個名為 .htaccess的檔案
將以下內容寫入這個檔案裡:
RewriteEngine On
RewriteRule ^index/([0-9]+)\.html$ index.php?page=$1