apache mod_rewrite模組提供了乙個基於正規表示式分析器的重寫引擎來實時重寫url請求。它支援每個完整規則可以擁有不限數量的子規則以及附加條件規則的靈活而且強大的url操作機制。此url操作可以依賴於各種測試,比如伺服器變數、環境變數、http頭、時間標記,甚至各種格式的用於匹配url組成部分的查詢資料庫。
使用此模組的條件
1.在apache的httpd.conf裡開啟loadmodule rewrite_module modules/mod_rewrite.so即把前面的 『#』去掉
如果有操作httpd.conf的許可權可以直接在httpd.conf裡配置,但多是在**目錄下.htaccess檔案裡配置
如果在.htaccess裡配置需開啟支援.htaccess
allowoverride all使.htaccess檔案生效
示例
options indexes followsymlinks
allowoverride all
order allow,deny
allow from all
第二行有indexes的話是允許列出目錄檔案,沒有或者-indexes則表示不允許列出目錄檔案
示例目錄結構
re在apache根目錄下
re下demo檔案
<?php
echo $_get['id'];
echo "
";echo "re下的demo
";echo "";
echo $_server['php_self'];
?>
r1,r2下demo和demo一樣,只是第四行分別為"r1下demo","r2下demo"標誌
error.html檔案裡**也只是標誌各自位置
.htaccess檔案
rewriteengine on
rewritebase /re/
rewritecond % localhost [nc]
rewriterule demo(\d+)\.html demo.php?id=$1
errordocument 404 error.html
其中rewritebase+demo.php是真實檔案存在位置,如果沒設定此項則以.htaccess檔案所在目錄為基準
如果按以上的.htaccess
訪問:http://localhost/re/demo1.html
結果:
要訪問的demo1.html是以.htaccess所在目錄為基準
訪問個不存在的目錄裡的http://localhost/re/a/demo1.html
將會訪問到當前rewritebase下的error.html檔案
若:
若
當不匹配時
apache偽靜態規則解析
1 簡單的重定向規則 rewriteengine on 啟動規則 rewritebase 根目錄啟動偽靜態 rewriterule index index.php 訪問index 那麼就是訪問index.php rewriterule register s youka register.html 訪...
apache重寫規則
本文旨在提供如何用apache重寫規則來解決一些常見的url重寫方法的問題,通過常見的 例項給使用者一些使用重寫規則的基本方法和線索。二 為什麼需要用重寫規則?乙個 如果是長期需要放在internet上提供服務,必定會有不斷地更新和維護,如臨 時轉移到其它伺服器進行維護,重新組織目錄結構,變換url...
偽氏排名規則
本次集訓隊共有30多人參加,毫無疑問,你們都是很優秀的,但是由於參賽名額有限,只能選拔部分隊員參加省賽。從學校的角度,總是希望選拔出最優秀的18人組成6支隊伍來代表學校。但是,大家也知道,要想做到完全客觀,是一件很難的事情。因為選拔的標準本身就很難統一。為了解決這個難題,我現在把問題作了簡化,現在假...