apache 設定檔 
apache預設已有mod_rewire 模組: (httpd.conf 相關設定) 
預設也已啟用.


LoadModule rewrite_module libexec/apache/mod_rewrite.so 
AddModule mod_rewrite.c 


用法: 在希望作用的資料夾下,  新增 .htaccess 檔案 

RewriteCond:  表示新的規則開始 
參數: 
[NC] (不分字母大小寫) 
[OR] (或者, 用來與下一規則連結用) 

RewriteRule :   重新導向的規則 
常用參數: (其他請自行參考apache手冊) 
[R]   重新導向 
[F]   重新導向到 403 forbidden 頁面 
[L]   表示這是最後一條規則 

常用到的規則表示式:
.           任何單一字母 
[chars]   chars字母中的其中一個 
[^chars] 不包含 chars 的字母 
?           0個或是1個字母 
*           0個或是N個字母 
+          1個或是N個字母 
^          表示一行的開始 
$           表示一行的結束 
\            跳脫字元(顯示符號本身) 

常見的用法:
(A) 重新導向到正確的網址:

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^ohaha.ks.edu.tw$ [NC] 
RewriteRule ^(.*)$ http://ohaha.ks.edu.tw/$1 [R,L]

說明: 
若使用者瀏覽頁是www.ohaha.ks.edu.tw/ooo.php 重導向至 http://ohaha.ks.edu.tw/ooo.php

(B) 禁止盜連檔案,並且顯示相關訊息給盜連者

.

RewriteEngine on 
SetEnvIf referer “^$” local_ref=1 
RewriteCond %{HTTP_REFERER} !^http://ohaha.ks.edu.tw/.*$ [NC] 
RewriteRule .*\.(jpg|gif|png|iso|rar|zip|tar.gz)$ /nohotlink.png [R,NC]


說明: 
若使用者參照頁面不是空的, (第一行) 
也不包含 http://ohaha.ks.edu.tw/ (第二行) 
且瀏覽 jpg gif …等圖檔, 則以 /nohotlink.png 圖檔替代顯示這些遭盜連檔案. (第三行) 

補充: 
此時若有盜連者,可以在http-access log檔案可以發現類似如下紀錄:

使用者的IP位址 – – [30/Jun/2008:16:57:41 +0800] “GET /nohotlink.png HTTP/1.1” 304 – “盜連的頁面來源” “Mozilla/4.0 (compatible; MSIE 7.0; W indows NT 5.1)”

Views: 4