Apache系統中的.htaccess文件(分佈式配置文件)提供了針對目錄改變配置的方法,也就是在一個特定的文件目錄中放置一個包含指令的文件,以做用於此目錄以及全部子目錄.直白的說,.htaccess文件只是一個簡單的文檔,能夠在裏面添加些簡單的命令實現各類不一樣的配置.php
做用:html
1.設置404頁面web
1) Apache服務器404頁面的設置方法安全
在.htaccess文件中加入代碼:服務器
ErrorDocument 404 /Error.html
創建簡單的HTML404頁面Error.html, 把該Error.html放置在網站根目錄便可.dom
2) IIS/ASP.net下設置404錯誤頁面分佈式
首先,修改應用程序根目錄的配置,打開"web.config"文件,在其中添加內容:網站
<configuration> <system.web> <customErrors mode="On" defaultRedirect="error.asp"> <error statusCode="404" redirect="nofound.asp"> </customErrors> </system.web> </configuration>
其中"error.asp"爲系統默認的404頁面,"nofound.asp"爲自定義的404頁面,使用時請修改相應文件名.ui
而後,在自定義404頁面"nofound.asp"中加入:搜索引擎
<% Response.Status = "404 Not Found" %>
2. 實現URL重定向
咱們能夠對網站進行從新規劃,將文檔進行遷移,或者更改目錄,這個時候,來自搜索引擎或者其餘網站連接過來的訪問就可能錯誤.這種狀況下,能夠經過以下指令來完成舊的URL自動轉向新的地址:
Redirect /舊目錄/舊文件名 新文檔的地址 或者整個目錄的轉向: Redirect /olddirectory http://www.newsite.com/newdirectory
這樣,任何指向站點中olddirectory目錄的請求將被從新指向新的站點,包括添加的額外URL信息,例如:
http://www.youroldsite.com/olddirectory/oldfiles/images/image.gif 請求被重定向到: http://www.newsite.com/olddirectory/oldfiles/images/image.gif
3. 密碼保護
有時候你可能針對某個目錄設定對應的密碼保護,首先要生成一個.htpasswd文件,而後輸入用於訪問網站的用戶名和密碼,格式:
username password //其中password的應該是加密以後的密碼,另外須要注意: .htpasswd文件的位置最好放置在www目錄以外,較爲安全
最後,在.htaccess中添加指令:
AuthUserFile /full/path/to/.htpasswd(.htpasswd的服務器目錄) AuthGroupFile /dev/null (須要受權訪問的目錄) AuthName EnterPassword AuthType Basic (受權類型) Require valid-user
這樣就完成了使用.htaccess文件實現網站目錄密碼保護
注: 在使用.htaccess來設置目錄的密碼保護的時候,它包含了密碼文件的路徑. 從安全考慮,有必要把.htaccess也保護起來,不讓別人看到其中的內容.最簡單的方式在.htaccess文件中加入指令:
order allow,deny deny from all
4. 拒絕某個ip的訪問請求
order allow,deny deny from 220.134.342.33 deny from 220.134.342 allow from all
其中第二行代碼爲拒絕某個ip,第三行拒絕某個ip段, 若是想阻止全部人訪問
deny from all
5.文件防盜鏈
RewriteEngine on RewriteCond %{ HTTP_REFERER } !^$ RewriteCond %{ HTTP_REFERER } !^http://(www.)?mydomain.com/.*$ [NC] RewriteRule .(gif&line;jpg)$ - [F]
RewriteEngine on RewriteCond %{ HTTP_REFERER } !^$ RewriteCond %{ HTTP_REFERER } !^http://(www.)?mydomain.com/.*$ [NC] RewriteRule .(gif&line;jpg)$ http://www.mydomain.com/替代圖片文件名 [R,L]