萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> Apache Web服務器.htaccess文件配置

Apache Web服務器.htaccess文件配置

  htAccess是Apache服務器的一個配置文件,具有強大的功能,本文介紹如何編輯該文件,讓網站實現封鎖某國家IP網段、防止圖片、文件盜鏈、保護主機下的目錄與文件、創建自定義的出錯頁面、把某些特殊的IP地址的請求重定向到別的站點、把老的域名轉像新的域名,這些功能。

  htAccess 文件(Hypertext Access file)是Apache Web服務器的一個非常強大的配置文件,對於這個文件,Apache有一堆參數可以讓你配置出幾乎隨心所欲的功能。

  使用.htaccess擋掉搜尋引擎機蜘蛛

  擋掉百度搜尋引擎

  百度是傳說中的暴力搜尋引擎,不遵守搜尋引擎的規則,若你嘗試使用robot.txt來擋住,那非常恭喜你,絕對無效。所以一定要使用比較暴力、強硬的手段才能,因此透過.htaccess就可以處理了,如果你要擋掉一些搜尋引擎(像是百度、搜狗等),那請將以下程式碼貼到htaccess.txt文件中。

  SetEnvIfNoCase User-Agent "^Baidu" bad_bot

  SetEnvIfNoCase User-Agent "^sogou" bad_bot

  SetEnvIfNoCase User-Agent "^Bloghoo" bad_bot

  SetEnvIfNoCase User-Agent "^Scooter" bad_bot

  Deny from env=bad_bot

  擋掉Google搜尋引擎

  如果你想要擋掉Google搜尋引擎,當然也可以透過.htaccsee擋掉,只要輸入以下程式碼就可以了,如果要連同暴力百度搜尋引擎一起封鎖,那就把這兩串程式碼放在同一個htaccsee.txt文件中。

  SetEnvIf User-Agent "^Googlebot" google

  Deny from env=google

  用.htaccess封鎖某國家IP網段

  有時候自己可能會規畫網站的發展方向,有不歡迎某些特定的國家來訪,這時候第一個想法應該是要鎖該國家的IP,但是卻不知從何做起?因為不知道那個國家的IP跟本不能鎖,這時候可以透過“blockcountry”線上工具網站產生的htaccess語法來替自己封鎖想要封鎖的IP網段國家。

  第1步 來到Block country(http://www.blockcountry.com) 網站首頁,首先你會看到一個框框,框框中有許多國家,請您挑選要封鎖的國家,可以復選,選擇完成後請點擊下方的[Block Now!]。

Apache Web服務器.htaccess文件配置 三聯

  第2步 將剛剛網頁上產生的程式碼貼到htaccess文件中,然後儲存。Apache對於被拒絕的IP會返回403錯誤。

  用.htaccess防止圖片、文件盜鏈

  一個圖文並茂的網站,最怕的就是文章轉貼,雖然現一直在尊重著作權法,但還是有許多人假裝沒看見?許多人喜歡“復制→貼上”,但這樣一個轉貼動作卻會對一個網站造成莫大的傷害,除了辛苦寫的文章被偷走外,連圖片也盜鏈!圖片或文件被盜連最怕的就是後續的流量,為了避免這種問題,我們必須自立自強,防止盜鏈這種可惡的行為!

  如果是cPanel虛擬主機,防盜連的方法不外乎就是到cPanel後台進行設定。如果你是其他類型的空間後台或者是說你只有FTP權限的空間,那該怎麼辦呢?其實只要你的空間支持.htaccess文件並且支持ReWrite,你都可以防止圖片與文件的盜鏈!

  通過.htaccess來防止網站的圖片、壓縮文件、或視頻等非Html文件被盜鏈的方法相當簡單,通過在該文件中加入幾句命令即可保護我們寶貴的帶寬。例如chinaz.com的設置如下:

  RewriteEngine on

  RewriteCond %{HTTP_REFERER} !^$ [NC]

  RewriteCond %{HTTP_REFERER} !nobing.cn [NC]

  RewriteCond %{HTTP_REFERER} !google.com [NC]

  RewriteCond %{HTTP_REFERER} !baidu.com [NC]

  RewriteCond %{HTTP_REFERER} !www.domain.com [NC]

  RewriteRule .*.(gif|jpg)$ http://www.chinaz.com/no.png [R,NC,L]

  利用.htaccess來保護主機下的目錄與文件

  一般來說很多虛擬主機預設是沒有開啟保護網站主機目錄下的文件,其實很危險的,假若你的目錄下忘記放置index文件,那很可能您目錄就被看光,一個不小心很可能重要資料就被拿走,這是蠻嚴重的一件事情。如果是Linux主機,我們可以透過簡易的.htaccess語法來保護網站主機目錄下的文件,讓別人無法輕易看見。

  平常我們使用的最簡單保護目錄的方法,莫過於使用“index.php”、“index.html”等等之類的網站index文件,因為主機內預設的設定在目錄中預設就是要抓index文件,而index文件通常會有很多種,主機會依續排列下來抓取,所以可以設定index文件來讓主機抓取,以達到保護目錄的效果。但如果主機需要的index文件沒有一個存在,這時候主機就會直接顯示目錄內的東西了,因為主機不知道要抓取誰當作主要網頁,所以會全部顯示。

  雖然使用index文件來保護目錄是可行的,但是每個子目錄都需要傳一個index文件其實蠻累人的,這時候我們就可以利用“.htaccess”來批量處理。

  Options -Indexes

  語法的進階使用

  當然該語法還有其他相關的用途,以下列出簡單的幾項供大家參考使用,如果你覺得以下的語法不是你想要或是想學更多,你可以到Apache官方網站來看看英文說明書,查看看還有什麼關於“indexoptions”的用途或是其他不錯的功能喔!

  Options +Indexes:顯示目錄下所有文件

  Options -Indexes:隱藏目錄下所有文件 (上面已經介紹過)

  IndexOptions +FancyIndexing:顯示目錄下所有文件,文件前面包含檔案類型的小圖示

  IndexOptions -FancyIndexing : 顯示目錄下所有文件,但不包含文件類型的小圖示

  IndexIgnore *.php *.exe:隱藏特定的文件, 其余文件正常顯示(隱藏所有的php和exe文件)

  使用.htaccess 創建自定義的出錯頁面

  對於Linux Apache來說這是一項極其簡單的事情。使用下面的.htaccess語法你可以輕松的完成這一功能。(把.htaccess放在你的網站根目錄下)

  ErrorDocument 401 /error/401.PHP

  ErrorDocument 403 /error/403.php

  ErrorDocument 404 /error/404.php

  ErrorDocument 500 /error/500.php

  把某些特殊的IP地址的請求重定向到別的站點

  ErrorDocument 403http://www.youdomain.com

  Order deny,allow

  Deny from all

  Allow from 124.34.48.165

  Allow from 102.54.68.123

  把老的域名轉像新的域名

  # redirect from old domain to new domain

  RewriteEngine On

  RewriteRule ^(.*) $http://www.yourdomain.com/$1 [R=301,L]

copyright © 萬盛學電腦網 all rights reserved