程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP+APACHE實現網址偽靜態

PHP+APACHE實現網址偽靜態

編輯:關於PHP編程

     這篇文章主要介紹了PHP+APACHE通過使用mod rewrite模塊實現網址偽靜態的相關資料,需要的朋友可以參考下

       

    Apache的 mod_rewrite是比較強大的,在進行網站建設時,可以通過這個模塊來實現偽靜態。

    主要步驟如下:

      1.檢測Apache是否開啟mod_rewrite功能 可以通過php提供的phpinfo()函數查看環境配置,找到“Loaded Modules”,其中列出了所有apache2handler已經開啟的模塊,如果裡面包括“mod_rewrite”,則已經支持,不再需要繼續設置。如果沒有開啟“mod_rewrite”,則打開目錄 apache目錄下的“/apache/conf/” ,找到 httpd.conf 文件,再找到“LoadModule rewrite_module”,將前面的”#”號刪除即表示取用該功能。 如果沒有查找到“LoadModule” 區域,可以在最後一行加入“LoadModule rewrite_module ,modules/mod_rewrite.so”(獨占一行),之後重啟apache服務器。再通過phpinfo()函數查看環境配置就有“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規則學習 在新建.htaccess文件之後,就在裡面寫入以下內容: RewriteEngine on #rewriteengine為重寫引擎開關on為開啟off為關閉 RewriteRule ([0-9]{1,})$index.php?id=$1 在這裡,RewriteRule是重寫規則,是用正則表達式的句子,([0-9]{1,})表示由數字組成的,$表示結束標志,表示以數字結束!如果要實現偽靜態頁面,規則如下: 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$是規則,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

      呵呵,改寫成功!

    下面將我自己配置偽靜態的一些個人經驗分享一下:

      開始接觸偽靜態,看著很神奇,以為很難,其實很簡單,就是在服務器中多配置幾個虛擬域名,類似真正的訪問網址。 只需三步

    A.首先 在Apache Apache模塊中,開啟 vhost_alias_moudle

    B.修改httpd.conf文件,在這個文件中,搜索rewrite .找到 LoadModule rewrite_module modules/mod_rewrite.so 去掉前面的#

    C.修改這個文件,在路徑 D:wampbinapacheApache2.2.21confextra 下的httpd-vhosts.conf 文件,照著示例加一個就OK了

     

    代碼如下:
    <VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "d:/wamp/www/dz"
    ServerName localhost.www.dz.cn
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
    </VirtualHost>

     

    D.在路徑 C:WindowsSystem32driversetc 下 的 hosts 文件中配置一下

    127.0.0.1 localhost.www.dz.cn 重啟服務即可。 大功告成!

    **************************************************************************** 大家新年快樂!

    注明:在浏覽器輸入中 localhost.www.dz.cn,即可訪問,我加一個localhost是為了和正式的網址加以區別。有不懂的可以聯系我,方便大家一起探討,共同進步!

    你的偽靜態規則全部寫在 .htaccess 文件中,由於已經開啟了偽靜態,會默認加載該文件。 寫這個.htaccess 文件 要會寫正則哦,學習一些正則基礎吧!

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved