利用.htacces之前,必須先確定在apache的設定檔(/etc/apache2/httpd.conf)中找到一行設定值
AllowOverride All
若沒有則自行新增,如果有多台VirtualHost的話,則只要新增在需要此功能的VirtualHost即可,大概放在類似下面範例的位置。
<VirtualHost *:80> <Directory /> AllowOverride All </Directory> ... </VirtualHost>
記得改完設定值要重啟Apache
#ubuntu版本 sudo service apache2 restart #centos版本 service httpd restart
接著在目錄底下新增.htaccess檔案,加入以下內容,
RewriteEngine on RewriteCond %{HTTP_REFERER} !^http://yosia.biz/.*$ [NC] RewriteRule \.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ - [F]
語法說明:
- RewriteEngine
啟用本功能 - RewriteCond(觸發條件)
本範例為當非來自於http://yosia.biz的請求時 - RewriteRule (規則)
若是要請求的檔案是jpg,jpeg...exe等檔案時,將請求轉向到403禁止讀取頁面 - [F] 表示Forbidden, 即403頁面,可改為[R,NC](R表redirect,NC表忽略大小寫),並加上路徑參數,則可顯示指定的圖片或頁面,例如
RewriteRule \.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ /path/error.jpg [R,NC]