.htaccess

.htaccess

.htaccess是ApacheHTTPServer的檔案目錄系統級別的配置檔案的默認的名字。它提供了在主配置檔案中定義用戶自定義指令的支持。這些配置指令需要在.htaccess上下文和用戶需要的適當許可。

概述

下面的這些聲明經常用於配置伺服器,來傳送出自定義的文檔在回響客戶端時的錯誤,就像"404:NotFound沒有找到"或者伺服器錯誤如"503:ServiceUnavailable服務無法提供"(參看HTTP狀態代碼表ListofHTTPstatuscodes):
ErrorDocument404/error-pages/not-found.html
ErrorDocument503/error-pages/service-unavailable.html

當設定了自定義的報錯頁面,重要的是記住這些頁面能處理多種多樣的URL,當在這些出錯的文檔連結(包括圖片,樣式腳本和其他文檔)必須指定使用"絕對"URL(比如開頭為"http://")或者相對文檔根目錄的URL(開頭用"/")。
同樣,對於訪問網站其他未被授權訪問部分的用戶,"403:Forbidden禁止"錯誤的報錯頁面必須放在該用戶能訪問到的目錄下。
常規的做法是
用新建另外的包含這些代碼行:
Orderallow,deny
Allowfromall
htaccess檔案在/error-pages目錄下,來建立可被任何人訪問的目錄來包含這些報錯頁面。

密碼保護

給用戶顯示目錄以前需要輸入賬戶名及密碼。
AuthUserFile/home/newuser/www/stash/.htpasswd

.htaccess.htaccess

AuthGroupFile/dev/null
AuthName"ProtectedDirectory"
AuthTypeBasic
requireusernewuser
這個方法同樣適用在一個目錄下某個特殊的檔案。
AuthUserFile/home/newuser/www/stash/.htpasswd
AuthName"ProtectedFile"
AuthTypeBasic
Requirevalid-user
下面是創建新用戶newuser的新密碼的代碼命令。
htpasswd/home/newuser/www/stash/.htpasswdnewuser
解除密碼保護
在另外的保護的框架中,解除一個子目錄的密碼保護:
Satisfyany

伺服器內置SSI

AddTypetext/html.shtml
AddHandlerserver-parsed.shtml
OptionsIndexesFollowSymLinksIncludes

用戶IP禁止

Orderallow,deny
Denyfrom123.45.67.8
Denyfrom123.123.7
Allowfromall
上面能禁止IP地址在123.45.67.8以及IP位址開頭為123.123.7的任何人。例如123.123.74.42就不能得到訪問。

變更默認目錄頁

DirectoryIndexhomepage.html
這個任何人可以訪問http://www.example.com/能看到該站的主頁homepage.html的頁面,勝過默認的index.html。

頁面跳轉

Redirectpage1.htmlpage2.html

如果某人訪問http://www.example.com/page1.html,他將被跳轉到(帶有HTTP狀態代碼302)的http://www.example.com/page2.html

防止圖片熱鏈

後面的.htaccess規則使用了modrewrite.
特別域名
RewriteEngineon
RewriteCond%{HTTP_REFERER}^http://([^/]+\.)?baddomain1\.com[NC,OR]
RewriteCond%{HTTP_REFERER}^http://([^/]+\.)?baddomain2\.com[NC,OR]
RewriteCond%{HTTP_REFERER}^http://([^/]+\.)?baddomain3\.com[NC]

.htaccess.htaccess

Rewriterule\.(gif|jpg)$http://www.example.com/hotlink.gif[R,L]
非特別域名
RewriteEngineon
RewriteCond%{HTTP_REFERER}!^$
RewriteCond%{HTTP_REFERER}!^http://(www\.)?example.com/.*$[NC]
RewriteRule\.(gif|jpg)$http://www.example.com/hotlink.gif[R,L]
除非example.com有這個圖片,瀏覽器才能看到hotlink.gif.
注意:Hotlink熱鏈保護使用.htaccess依賴客戶端在httpGET請求中傳送正確的"提交"值。像嘗試使用WindowsMediaPlayer傳送空白的提交到.htaccess來保護電影檔案是無效的。
統一WEB地址
RewriteEngineOn
RewriteCond%{HTTP_HOST}!^www\.
RewriteRule^(.*)$http://www.%{HTTP_HOST}/$1[R=301,L]
如果有人輸入你的網站地址沒有''''www''''前綴,上面代碼能讓這些地址能跳轉到有''''www''''前綴的頁面

目錄規則

一個.htaccess檔案控制所在目錄,包括所有子目錄。不管怎樣,放置其他的.htaccess檔案在子目錄都是無效的.

用戶許可

.htaccess用戶許可,是伺服器級別AllowOverride控制,標明是Apache伺服器文檔的證明檔案.

其他套用

已有一些WEB開發者修改.htaccess來完成在服務內容傳到瀏覽器之前,自定義的伺服器端的任務。開發者ShaunInman展示了這種沒有CSS的修改.htaccess可能,請訪問allowforServerSideConstants.

相關詞條

相關搜尋

熱門詞條

聯絡我們