標籤:.htaccess apache
來源:http://www.ido321.com/1123.html
今天get了一招:利用.htaccess檔案對PHP網站或檔案進行偽靜態處理。
一、檢查伺服器是否支援偽靜態處理:
必須要空間支援 Rewrite 以及對網站目錄中有 .htaccess 的檔案解析,才有效.找到apache安裝目錄下的httpd.cof檔案,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#(大概在154行,我的預設是開啟)
二、在httpd.cof中尋找以下部分:
<Directory /> Options FollowSymLinks AllowOverride None</Directory>
改為:
<Directory /> Options FollowSymLinks AllowOverride All</Directory>
如果沒有,手動添加。(PS:LZ試過,在最近的新版本的Apache上即使沒有這個,.htaccess照樣生效。但是不同伺服器及版本的原因,建議加上)
三、重啟apache伺服器,添加.htaccess檔案
建立.htaccess檔案的方式:
1、儲存檔案的時候將文檔儲存成名為“***.txt”,再將其上傳到伺服器上,之後直接使用FTP軟體來重新命名為“.htaccess”。(適合windows)
2、儲存檔案的時候選擇檔案—>另存新檔,檔案類型選所有檔案,然後檔案名稱輸入.htaccess 。(適合windows)
3、直接在你的Unix或Linux虛擬機器主機上建立。
4、先用記事本編寫好,隨便儲存為一個什麼檔案名稱,然後開啟“命令提示字元”(CMD),然後再用重新命名命令(rename),例如:rename c:\htaccess.txt .htaccess
請注意: .htaccess必須,儲存為ANSI 格式,以ASCII模式上傳,最好將其使用權限設定為644。
一般我們將.htaccess檔案放置在網站的根目錄,控制所在目錄及所有子目錄,當然也可以放在網站的任何一個子目錄下,但如果放置在子目錄中,子目錄中的指令會覆蓋更進階目錄或者主伺服器設定檔中的指令。
在部落格收錄集(http://www.ido321.com/1112.html)為例,本地.htaccess檔案如下:
#rewriteengine為重寫引擎開關on為開啟off為關閉RewriteEngine On RewriteRule ^index\.html$ index.phpRewriteRule ^webmore\.html$ webmore.php
以index.html代替index.php webmore.html代替webmore.php。 .htaccess支援Regex,例如:
原始 news/detail.php?id=2 偽靜態 news/detail_2.html
RewriteRule ^news/detail_([0-9]{1,})\.html$ news/detail.php?id=$1
下一篇:雜談:HTML 5頁面可視性API
Apache:如何利用.htaccess檔案對PHP網站或檔案進行偽靜態處理