Apache的RewriteRule規則詳細介紹

R[=code](force redirect) 強制外部重定向 (rkyW z
強制在替代字符串加上http://thishost[:thisport]/前綴重定向到外部的URL.如果code不指定,將用缺省的302 HTTP狀態碼。 gN24M 3{C
F(force URL to be forbidden)禁用URL,返回403HTTP狀態碼。 m> 4ahue$
G(force URL to be gone) 強制URL為GONE,返回410HTTP狀態碼。 Np'2 }6P
P(force proxy) 強制使用代理轉發。 ) Ps b>'X
L(last rule) 表明當前規則是最后一條規則,停止分析以后規則的重寫。 ua 5 O Gx
N(next round) 重新從第一條規則開始運行重寫過程。 S,<EEt XQ
C(chained with next rule) 與下一條規則關聯 @+ 9 < O0
如果規則匹配則正常處理,該標志無效,如果不匹配,那么下面所有關聯的規則都跳過。 Zs}5Smjl;%
T=MIME-type(force MIME type) 強制MIME類型 ~=KJ zOS,S
NS (used only if no internal sub-request) 只用于不是內部子請求 /[6j)HIS
NC(no case) 不區分大小寫 ^2$ l J
QSA(query string append) 追加請求字符串 zH>hx5,k'X
NE(no URI escaping of output) 不在輸出轉義特殊字符 \~ B D m
例如:RewriteRule /foo/(.*) /bar?arg=P1\=$1 [R,NE] 將能正確的將/foo/zoo轉換成/bar?arg=P1=zed +3a?` Z
PT(pass through to next handler) 傳遞給下一個處理 %0 #XPc("
例如: :5/Uh/ sX
RewriteRule ^/abc(.*) /def$1 [PT] # 將會交給/def規則處理 x A u/
Alias /def /ghi XyM G.r-,
S=num(skip next rule(s)) 跳過num條規則 A~Xq,BxCV
E=VAR:VAL(set environment variable) 設置環境變量

rewrite時服務器變量: `: O\dN>ON
HTTP headers:HTTP_USER_AGENT, HTTP_REFERER, HTTP_COOKIE, HTTP_HOST, HTTP_ACCEPT },5'z {3E
connection & request: REMOTE_ADDR, QUERY_STRING PY3 ps2^K.
server internals: DOCUMENT_ROOT, SERVER_PORT, SERVER_PROTOCOL r}u %#G+K,
system stuff: TIME_YEAR, TIME_MON, TIME_DAY

Rewrite規則表達式的說明: #Fu>|2 F|
. 匹配任何單字符 wFlv i =n/
[chars] 匹配字符串:chars [o c~iDx%W
[^chars] 不匹配字符串:chars Lc<eRVNd,
text1|text2 可選擇的字符串:text1或text2 { OT:3SS7
? 匹配0到1個字符 A%Z)w z{
* 匹配0到多個字符 v4 *rPG v
+ 匹配1到多個字符 " o c $
^ 字符串開始標志 SKXBrD=-
$ 字符串結束標志 &LQ%
\n 轉義符標志

反向引用 $N 用于 RewriteRule 中匹配的變量調用(0 <= N <= 9) =_=*O EgO]
反向引用 %N 用于 RewriteCond 中最后一個匹配的變量調用(1 <= N <= 9)

RewriteCond標志符 @J v# f r
'nocase|NC'(no case)忽略大小 ZCi Y,;c
'ornext|OR' (or next condition)邏輯或,可以同時匹配多個RewriteCond條件

RewriteRule適用的標志符 hLuJ WjCV
'redirect|R [=code]' (force redirect)強迫重寫為基于http開頭的外部轉向(注意URL的變化) 如:[R=301,L] uC[d%v`
'forbidden|F' (force URL to be forbidden)重寫為禁止訪問 2F T-}w 0;
'proxy|P' (force proxy)重寫為通過代理訪問的http路徑 F(0Z ] # +
'last|L' (last rule)最后的重寫規則標志,如果匹配,不再執行以后的規則 ?%;B`2 nDR
'next|N' (next round)循環同一個規則,直到不能滿足匹配 ,4yG(O $ )
'chain|C' (chained with next rule)如果匹配該規則,則繼續下面的有Chain標志的規則。 p_gA/ . v=
'type|T=MIME-type' (force MIME type)指定MIME類型 1^tSn #j
'nosubreq|NS' (used only if no internal sub-request)如果是內部子請求則跳過 LhZZ c`|7t
'nocase|NC' (no case)忽略大小 b.@ H1 L
'qsappend|QSA' (query string append)附加查詢字符串 *b: u * `@
'noescape|NE' (no URI escaping of output)禁止URL中的字符自動轉義成%[0-9]+的形式。 ~ t"n%SgY
'passthrough|PT' (pass through to next handler)將重寫結果運用于mod_alias IL2 e6 b
'skip|S=num' (skip next rule(s))跳過下面幾個規則 loR,X W7 z
'env|E=VAR:VAL' (set environment variable)添加環境變量

實際操作

例子: "IOC[ #&G
RewriteEngine on !?S5IG LOj
RewriteCond %{HTTP_USER_AGENT} ^MSIE [NC,OR] _R N/7\
RewriteCond %{HTTP_USER_AGENT} ^Opera [NC] !&' # a
RewriteRule ^.* - [F,L] 這里”-”表示沒有替換,瀏覽器為IE和Opera的訪客將被禁止訪問。

例子: *U( 1iv0 n
RewriteEngine On QWU5-p9e 8
RewriteBase /test Q3 K ;kS
RewriteCond %{REQUEST_FILENAME}.php -f rU/-Wq` B
RewriteRule ([^/]+)$ /test/$1.php ?7r mw y\
#for example: /test/admin => /test/admin.php I v 80,hW
RewriteRule ([^/]+)\.html$ /test/$1.php [L] aufcd57
#for example: /test/admin.html => /test/admin.php

限制目錄只能顯示圖片 yKX: Z4I/
< IfModule mod_rewrite.c> + #i ,87
RewriteEngine on L @ ^ !(
RewriteCond %{REQUEST_FILENAME} !^.*\.(gif|jpg|jpeg|png|swf)$ mtHi9).,y|
RewriteRule .*$ - [F,L] [ 3bwbfHhi
< /IfModule>

2) 轉換www.username.domain.com的對于username的主頁請求為
www.domain.com/username

對于HTTP/1.1的請求包括一個Host: HTTP頭,我們能用下面的規則集重寫
http://www.username.domain.com/anypath 到 /home/username/anypath

Rewriteengine on
rewritecond %{HTTP_HOST} ^www\.[^.]+\.host\.com$
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
rewriterule ^www\.([^.]+)\.host\.com(.*) /home/$1$2

注:
rewritecond 條件重寫規則,當滿足后面定義的條件后才會應用下面的重寫規則,
rewritecond有各種變量

轉載于:https://www.cnblogs.com/hechunhua/p/3370571.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/273982.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273982.shtml
英文地址,請注明出處:http://en.pswp.cn/news/273982.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

算法:查找

查找算法&#xff08;比較&#xff09;基本思想順序查找順序查找也稱為線形查找&#xff0c;屬于無序查找算法。從數據結構線形表的一端開始&#xff0c;順序掃描&#xff0c;依次將掃描到的結點關鍵字與給定值k相比較&#xff0c;若相等則表示查找成功&#xff1b;若掃描結束仍…

query上傳插件uploadify參數詳細分析

query上傳插件uploadify參數詳細分析 Uploadify Version 3.2 官網&#xff1a;http://www.uploadify.com/ 注&#xff1a;文件包里有兩個js分別是&#xff1a;jquery.uploadify.js 和 jquery.uploadify.min.js&#xff0c;兩者其實一樣&#xff0c;只需載入其中一個js即可。很明…

python 基礎 list和 tuple dict和set

list Python內置的一種數據類型是列表&#xff1a;list。list是一種有序的集合&#xff0c;可以隨時添加和刪除其中的元素。classmates [Michael, Bob, Tracy] 要刪除list末尾的元素&#xff0c;用pop()方法&#xff1a; 要刪除指定位置的元素&#xff0c;用pop(i)方法&#x…

IIS的安裝

xp上好像只能裝IIS5&#xff0c;IIS6根本就裝不了轉載于:https://www.cnblogs.com/hyk110988/p/3372592.html

py四種時間格式

time有四種類型&#xff08;time, datetime, string, timestamp&#xff09;1. time stringstring是最簡單的表示time的方式如如下代碼生成的即為string123>>> import time>>> time.ctime()Wed Nov 30 13:53:31 2016或者更簡單的生成一個字符串1time_string …

type_traits應用

工作遇到這樣的例子&#xff0c;對不同數據進行計算處理&#xff0c;得到一組結果集&#xff0c;包括計數、比例等。各個計算處理過程不同&#xff0c;結果集數據結構相同&#xff0c;但并非所有計算過程均有計數、比例的結果&#xff0c;有些可能只有計數&#xff0c;有些只有…

csv.writer寫入文件有多余的空行

在用csv.writer寫入文件的時候發現中間有多余的空行。 最早打開方式只是‘w’&#xff0c;會出現多余的空行&#xff0c;網上建議使用binary形式‘wb’打開可以解決問題&#xff1a; with open(egg2.csv, wb) as cf:12 不過只能在python2下運行&#xff0c;python3報錯&#xf…

java筆記之連接數據庫

1、一定不要忘了導入包 java工程&#xff1a;lib文件夾下mysql-connector-java.jar--->Build Path Web工程:當web下的servlet需要連接數據庫時&#xff0c;除了上一步導入包還要在WEB-INF/lib導入mysql-connector-java.jar 2、關于亂碼&#xff0c;查詢 在終端查詢數據時&am…

那些不能錯過的XCode插件

XCode顏色顯示插件ColorSense代碼里的那些冷冰冰的顏色數值&#xff0c;到底時什么顏色&#xff1f;如果你經常遇到這個問題&#xff0c;每每不得不運行下模擬器去看看&#xff0c;那么這個插件絕對不容錯過。更彪悍的是你甚至可以點擊顯示的顏色面板&#xff0c;直接通過系統的…

python爬蟲第一課 開發環境配置

一、Python3的安裝 二、請求庫的安裝 1、requests的安裝 直接pip安裝&#xff1a;pip3 install requests 2、Selenium的安裝 selenium是一個自動測試化工具&#xff0c;利用它我們可以驅動瀏覽器執行特定的動作&#xff0c;如點擊、下拉等操作。 直接pip安裝&#xff1a;pip in…

用JSLint精煉提升JavaScript代碼

由于移動應用的盛行和HTML5的廣泛運用&#xff0c;JavaScript正越來越流行。JavaScript受歡迎的部分原因是因為它的靈活便捷&#xff0c;你可以快速上手&#xff0c;它不需要重量級的開發環境&#xff0c;也不需要第三方應用支持&#xff0c;只要你打開一個文本編輯器&#xff…

pymssql出現的錯誤

安裝pymssql出現的錯誤&#xff1a;如下&#xff1a;---------------------------------------- Failed building wheel for pymssqlRunning setup.py clean for pymssql Failed to build pymssql Installing collected packages: pymssqlRunning setup.py install for pymssq…

javascript設計思維

//一.把參數當作私有變量使用 (function (a, b) {//把參數當作私有變量使用&#xff0c;省略了var&#xff0c;也節省了行數console.log(b) //undefined&#xff0c;所有未賦值的變量均為undefined })(window);//二.把參數作為參數使用 var obj_init function (b, d, f) {//1…

linux第一章簡答

linux第一章簡答題&#xff1a; 1、你在你的主機上面安裝了一張網卡&#xff0c;但是開機之后&#xff0c;系統卻無法使用&#xff0c;你確定網卡是好的&#xff0c;那么可能的問題出在哪里&#xff1f;該如何解決&#xff1f; 答&#xff1a;因為所有的硬件都沒有問題&#xf…

(原創)一個和c#中LazyT類似的c++ LazyT類的實現

在.net 4.0中增加一個延遲加載類Lazy<T>&#xff0c;它的作用是實現按需延遲加載&#xff0c;也許很多人用過。一個典型的應用場景是這樣的&#xff1a;當初始化某個對象時&#xff0c;該對象引用了一個大對象&#xff0c;需要創建&#xff0c;這個對象的創建時需要較長的…

網頁選項卡的應用

&#xff08;1&#xff09;功能描述&#xff1a; 在頁面中&#xff0c;設置三個不同名稱的選項卡&#xff0c;當單機某個選項卡時&#xff0c;下面相對應的區域顯示其內容信息&#xff0c;同時選項卡的背景色與內容信息的背景色渾然一體&#xff0c;并且字體加粗&#xff0c;表…

python 爬蟲-beautifulsoup4

利用它可以不用編寫正則表達式即可方便的實現網頁信息的提取。 pip3 install beautifulsoup4 用法講解&#xff1a;常用解析庫&#xff1a; lxml HTML解析器 lxml XML解析器 from bs4 import BeautifulSoup soup BeautifulSoup(html,lxml) print(soup.prettify()) #格式化代…

魔獸控制命令ID

來源:http://tieba.baidu.com/p/1084211586本次技能ID大全共收錄ID368條不包括重復的ID&#xff0c;物品類技能的ID使用必須將物品技能單獨抽離出來并設置“物品技能false”&#xff0c;擁有命令字符串的物品請參考擁有相同字符串的4族中立技能。P.S所有ID都是按照從小到大的順…

python爬蟲框架--scrapy 基本使用

流程框架&#xff1a; 1、抓取第一頁&#xff1a;請求第一頁的URL并得到源代碼&#xff0c;進行下一步分析。 2、獲取內容和下一頁鏈接&#xff1a;分析源代碼&#xff0c;提取首頁內容&#xff0c;獲取下一頁鏈接等待進一步爬取。 3、保存爬取結果&#xff1a;將爬取結果保存為…

jsp頁面的使用

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//1.獲取資源文件 InputStream isthis.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties"); Str…