博主熱衷各種互聯(lián)網(wǎng)技術(shù),常啰嗦,時常伴有強迫癥,常更新,覺得文章對你有幫助的可以關(guān)注我。 轉(zhuǎn)載請注明"深藍的鐮刀"
書接上回,《Apache之.htaccess備忘錄(一)》
4.配置.htaccess 阻止/允許特定的ip地址1 deny from 000.000.000.000 2 deny from 000.000.000. 3 allow from 000.000.000.000 4 deny from all5.更改默認訪問文件
DirectoryIndex filename.html index.cgi index.pl default.htm6.重定向目錄或文件
Redirect OldDirectory NewDirectory Redirect OldFile NewFile
注意:目錄重定向后目錄后的url會追加到新的目錄后
7.圖片防盜鏈1 <IfModule mod_rewrite.c> 2 RewriteEngine On 3 RewriteBase / 4 RewriteCond %{HTTP_REFERER} !^$ 5 RewriteCond %{HTTP_REFERER} !^http://(www/.)?example/.com/ [NC] RewriteRule /.(gif|jpg|png)$ http://www.example.com/替代圖片文件名 [R,L] </IfModule>8.URL重寫
1 <IfModule mod_rewrite.c>2 RewriteEngine On 3 RewriteBase / 4 RewriteCond %{HTTP_REFERER} !^$ 5 RewriteCond %{HTTP_REFERER} !^http://(www/.)?example/.com/ [NC] RewriteRule /.(gif|jpg|png)$ http://www.example.com/替代圖片文件名 [R,L] </IfModule>
第一行 確定你開啟了rewrite模塊,如果沒有,請參考Apache之.htaccess備忘錄(一)
第二行 開啟Rewite引擎
第三行確保重寫后的基地址是你寫.htaccess文件的位置、
第四行 重寫規(guī)則,并且使用R參數(shù)保證跳轉(zhuǎn)是顯示的
保存在你網(wǎng)站根目錄,然后試試輸入 http://www.yourweb.com/123
999.附錄:各種語法詳細解釋1)RewriteCond指令格式* 用途:Rewrite規(guī)則啟動的一些前提條件
* 語法: RewriteCond TestString CondPattern [flags]
* TestString表示待檢查的變量,支持:
$N 其中(0 <= N <= 9) 。$N引用緊跟在RewriteCond后面的RewriteRule中模板中的括號中的模板在當前URL中匹配的數(shù)據(jù)。非常常用,具體用法在RewriteRule中會介紹。
%N其中(0 <= N <= 9) 。%N引用最后一個RewriteCond的模板中的括號中的模板在當前URL中匹配的數(shù)據(jù)。
以及各種變量,如%{HTTP_REFERER} ,%{REQUEST_FILENAME},%{REQUEST_URI},%{DOCUMENT_ROOT}%{REQUEST_FILENAME}
* CondPattern表示匹配規(guī)則,Perl風格的正則表達式,同時支持以下特殊用法:
'>CondPattern’ (大于) 將condPattern當作一個普通字符串,將它和TestString進行比較,當TestString 的字符大于CondPattern為真。
‘=CondPattern’ (等于) 將condPattern當作一個普通字符串,將它和TestString進行比較,當TestString 與CondPattern完全相同時為真.如果CondPattern只是 “” (兩個引號緊挨在 一起) 此時需TestString 為空字符串方為真。
‘-d’ (是否為目錄) 將testString當作一個目錄名,檢查它是否存在以及是否是一個目錄。
‘-f’ (是否是regular file) 將testString當作一個文件名,檢查它是否存在以及是否是一個regular文件。
‘-s’ (是否為長度不為0的regular文件) 將testString當作一個文件名,檢查它是否存在以及是否是一個長度大于0的regular文件。
‘-l’ (是否為symbolic link) 將testString當作一個文件名,檢查它是否存在以及是否是一個 symbolic link。
‘-F’ (通過subrequest來檢查某文件是否可訪問) 檢查TestString是否是一個合法的文件,而且通過服務器范圍內(nèi)的當前設置的訪問控制進行訪問。這個檢查是通過一個內(nèi)部subrequest完成的, 因此需要小心使用這個功能以降低服務器的性能。
‘-U’ (通過subrequest來檢查某個URL是否存在) 檢查TestString是否是一個合法的URL,而且通過服務器范圍內(nèi)的當前設置的訪問控制進行訪問。這個檢查是通過一個內(nèi)部subrequest完成的, 因此需要小心使用這個功能以降低服務器的性能。
* flags是一些參數(shù):
[OR] 強制加下一個條件和條件組成“或”的關(guān)系
[NC](no case)表示忽略大小寫
2)RewriteRule指令格式* 用途: 實際執(zhí)行的Rewrite規(guī)則
* 語法: RewriteRule Pattern Substitution [flags]
* Pattern表示待搜索的規(guī)則,Perl風格的正則表達式
* Substitution表示匹配Pattern后URL改寫的值
其中該字符串支持一個非常常用的用法:$N其中(0 <= N <= 9) 。就是類似$1,$2的用法,該用法可以直接引用Pattern中括號中匹配的值
如:
RewriteRule ^/([/w]+)/([0-9]+)$ -$1-$2.html 就可以將“/web/1313”改寫成"-web-1313.html"
* flags是一些參數(shù):
[L](last):終止一系列的RewriteCond和RewriteRule
[R](redirect):觸發(fā)一個顯示的跳轉(zhuǎn),也可以指定跳轉(zhuǎn)類型,如[R=301],這個參數(shù)經(jīng)常會用到,比如你希望在重定向的時候URL也變化,那么就加上這個參數(shù)
[F](forbidden):禁止查看特定文件,apache會觸發(fā)403錯誤
[G](gone)強制URL為已廢棄的 gone
[P](PRoxy)強制為代理 proxy
[N](next)重新執(zhí)行 next round
[C](chain)與下一個規(guī)則相鏈接 chained
[T=MIME-type](type)強制MIME類型 type
[NS](nosubreq)僅用于不對內(nèi)部子請求進行處理 no internal sub-request
[NC](no case)表示忽略大小寫
[QSA](qsappend) 追加請求串 query string append
[NE] (noescape)在輸出中不對URI作轉(zhuǎn)義 no URI escaping
[PT] (passthrough)移交給下一個處理器 pass through
新聞熱點
疑難解答