phprewrite
1. IIS 伺服器下的php偽靜態要怎麼弄啊
IIS配置支持偽靜態 ISAPI Rewrite(win2003系統)
第一:首先我們需要下載一個ISAPI_Rewrite,有精簡版和完全版,一般精簡版只能對伺服器全局進行配置,而完整版可以對伺服器上的各個網站進行偽靜態配置.對於個人站長來說,精簡版就足夠了.
下載:http://www.isapirewrite.com/download/isapi_rwl_0055.msi
第二:下載完成後,可以找到安裝包里的.msi的文件,安裝即可.
隨便裝在哪都可以,默認是裝在C:\Program Files\Helicon下,要注意的是這個目錄everyone要有讀取許可權。我就因為當時伺服器許可權配的比較嚴格,默認安裝Helicon這目錄EVERYONE是沒有任何許可權的,結果老是出現:Service Unavailable 。
第三:打開Internet 信息服務,右鍵,web站點屬性,點擊ISAPI篩選器選項卡.添加篩選器,這里的名稱可以自己隨意填寫,路徑自己指定ISAPI_Rewrite.dll,然後確定.
下面我們先做一個測試頁new.asp,可以按照下面的代碼寫
然後,在瀏覽器中輸入:
http://127.0.0.1/new.asp?id=1234
接著你就可以在網頁上看到一行文字:"1234"
看到這幾個數字,就說明你測試成功了.
現在我們開始來配置ISAPI_Rewrite :
打開ISAPI_Rewrite的目錄,把httpd.ini的只讀屬性去掉,打開編輯.我們現在是需要把new.asp?id=1234修改成類似new_1234.html的路徑,因此,我們需要在httpd.ini中添加一句
RewriteRule /new_([0-9,a-z]*).html /new.asp?id={GetProperty(Content)}
保存後,我們就可以測試一下這個網址了:http://127.0.0.1/new_1234.html
可以看到頁面上的"1234"了吧,就這樣偽靜態配置成功了!
2. PHP本地如何實現偽靜態頁面
Apache的 mod_rewrite是比較強大的,在進行網站建設時,可以通過這個模塊來實現偽靜態。
主要步驟如下: 1.檢測Apache是否開啟mod_rewrite功能 可以通過php提供的phpinfo()函數查看環境配置,找到「Loaded Moles」,其中列出了所有apache2handler已經開啟的模塊,如果裡麵包括「mod_rewrite」,則已經支持,不再需要繼續設置。如果沒有開啟「mod_rewrite」,則打開目錄 apache目錄下的「/apache/conf/」 ,找到 httpd.conf 文件,再找到「LoadMole rewrite_mole」,將前面的」#」號刪除即表示取用該功能。 如果沒有查找到「LoadMole」 區域,可以在最後一行加入「LoadMole rewrite_mole ,moles/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
3. phpstudy偽靜態設置該怎麼做
一、開啟Mod_rewrite模塊
點擊任務欄中的phpstyudy圖標,選擇「配置文件」--「httpd-conf」
搜索 LoadMole rewrite_mole moles/mod_rewrite.so (Apache2是這個)
去掉前面的#
搜索AllowOverride None 替換為 AllowOverride All
有好幾個找到和下面代碼類似的那個
</IfMole>
#
# "D:usrlocalApache2cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "D:usrlocalApache2cgi-bin">
AllowOverride All
Options None
Order allow,deny
Allow from all
</Directory>
二 、在Apache2confhttpd.conf 最後一行添加:
<IfMole mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)-htm-(.*)$ $1.php?$2 (這里是httpd.ini裡面的偽靜態規則)
</IfMole>
然後重新Apache後就可以正常使用了。