apache rewrite 擬靜態配置
如一個普通訪問地址為
*/php100.php?id=2
可以轉成:
*/php100_2.html
或轉成:
*/php100_2/
Apache配置:
1.啟用rewrite httpd.conf檔案
# LoadModule rewrite_module modules/mod_rewrite.so
去除前面的 #
LoadModule rewrite_module modules/mod_rewrite.so
2.
尋找directory "D:/www"
找到下面的AllowOverride None 修改為 AllowOverride All
啟用 rewrite
RewriteEngine on ========啟動rewrite引擎
RewriteRule ^/t_(.*).html /test.php?id=$1 =======rewrite規則
RewriteRule ^/t_(.*)/$ /test.php?id=$1
mod_rewrite規則的使用
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.php100.com [NC] =====判斷主機
RewriteRule ^/(.*) http://www.php100.com/ [L] =====跳轉到
RewriteRule ^/test([0-9]*).html$ /test.php?id=$1
RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R] =====跳轉到
mod_rewrite 規則修正符
1) R 強制外部重新導向
2) F 禁用URL,返回403HTTP狀態代碼。
3) G 強制URL為GONE,返回410HTTP狀態代碼。
4) P 強制使用代理轉寄。
5) L 表明當前規則是最後一條規則,停止分析以後規則的重寫。
6) N 重新從第一條規則開始運行重寫過程。
7) C 與下一條規則關聯
如果規則匹配則正常處理,以下修正符無效
8) T=MIME-type(force MIME type) 強制MIME類型
9) NS 只用於不是內部子請求
10) NC 不區分大小寫
11) QSA 追加請求字串
12) NE 不在輸出轉義特殊字元 \=$1 等價於 =$1