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