.htaccess是需要apache開啟虛擬主機支援.htaccess才可以實現下面的功能哦,下面我來介紹關於.htaccess阻止某些ip訪問,重定向和url重寫,限定訪問特點資源,實現快取等功能介紹
什麼是htaccess
概述來說,htaccess檔案是apache伺服器中的乙個配置檔案,它負責相關目錄下的網頁配置。通過htaccess檔案,可以幫我們實現:網頁301重定向、自定義404錯誤頁面、改變副檔名、允許/阻止特定的使用者或者目錄的訪問、禁止目錄列表、配置預設文件等功能。
乙個簡單的重定向
**如下:這是設定乙個http狀態碼為301(永久移動)並把所有訪問old.html轉向到new.html。使用了正規表示式來匹配訪問的頁面,後面的url必須是完整路徑。
url重寫
**如下:rewriteengine on
rewriterule ^old.html$ new.html
第一行開啟重寫引擎
第二行是重寫規則。這樣使用者訪問old.html時實際卻是訪問的new.html,而且使用者對此好吧知情。因為位址列裡依舊顯示是old.html。
為了在位址列顯示新的訪問位址,我們可以加個f標誌在rewriterule語句裡。
**如下:下面是把帶查詢引數的url重寫成對搜尋引擎友好的url
複製****如下:
rewriterule ^products/([^/]+)/([^/]+)/([^/]+) product.php?cat=$1&brand=$2&prod=$3
這條規則允許訪問者以類似這樣的
url products/turntables/technics/sl1210,
來訪問product.php?cat=turntables&brand=technics&prod=sl1210.
括號裡為乙個單元,分別對應後面的$1,$2,$3。[^/]+ 在原括號裡表示除了/之外的任何乙個或是多個字元。
自定義錯誤頁面
複製****如下:
errordocument 404"/404.html"
這是定義404頁面無法找到的錯誤,也可以定義其他錯誤**的頁面。
限定訪問特點資源
複製****如下:
authname"username and password required"
authuserfile/path/to/.htpasswd
require valid-user
authtype basic
保護protectedfile.html,authname是登陸框的提示資訊,authuserfile是.htpasswd檔案的路徑
阻止某些ip訪問
複製****如下:
order allow,deny
deny from 192.168.0.1
allow from allorder
告訴apache指令的順序。這裡的這個是先允許後拒絕的。雖然allow from all後出現但是還是在前面生效。拒絕了192.168.0.1的訪問。也可以按段來遮蔽訪問的,只要只指定前面的幾段就可以類似,192.168.
實現快取
複製****如下:
第一行開啟,下面分別控制各種資源都加上乙個月的快取期。這個功能依賴apache的mod_expires 模組。
認證舉例
如果你只是為了知道如何認證,而直接從這裡開始看的,有很重要的一點需要注意,有一種常見的誤解,認為實現密碼認證必須要使用.htaccess檔案,其實是不正確的。把認證指令放在主配置檔案的段中是乙個更好的方法,而.htaccess檔案應該僅僅用於無權訪問主配置檔案的時候。參見上述關於何時應該與何時不應該使用.htaccess檔案的討論。
有此宣告在先,如果你仍然需要使用.htaccess檔案,請繼續看以下說明。
.htaccess檔案的內容:
複製****如下:
authtype basic
authname "password required"
authuserfile /www/passwords/password.file
authgroupfile /www/passwords/group.file
require group admins
必須設定 allowoverride authconfig 以允許這些指令生效。
伺服器端包含(ssi)舉例
.htaccess檔案的另乙個常見用途是允許乙個特定的目錄使用伺服器端包含(ssi),可以在需要的目錄中放置.htaccess檔案,並作如下配置:
複製****如下:
options +includes
addtype text/html shtml
addhandler server-parsed shtml
注意,必須同時設定 allowoverride options 和 allowoverride fileinfo 以使這些指令生效。
指令的作用範圍.htaccess檔案中的配置指令作用於.htaccess檔案所在的目錄及其所有子目錄,但是很重要的、需要注意的是,其上級目錄也可能會有.htaccess檔案,而指令是按查詢順序依次生效的,所以乙個特定目錄下的.htaccess檔案中的指令可能會覆蓋其上級目錄中的.htaccess檔案中的指令,即子目錄中的指令會覆蓋父目錄或者主配置檔案中的指令。
例子:
複製****如下:
/www/htdocs/example1
目錄中的.htaccess
檔案有如下內容:
options +execcgi
(注意:必須設定"allowoverride options"以允許在.htaccess中使用"options"指令)
/www/htdocs/example1/example2目錄中的.htaccess檔案有如下內容:
options includes
修改 htaccess實現301重定向
一下直接編輯.htaccess的方法。注意 在設定301重定向之前務必備份相應目錄下的.htaccess檔案。1.重定向domain.com到www.domain.com 這種重定向旨在使網域名稱唯一,是 seo必須要做的,後面重定向www.domain.com到domain.com也是出於同樣的原...
Fiddler設定重定向url
來自 request 域 regex insx http func redirect 域 redir http functest.首先 regex insx 語法為 fiddler中正則匹配的語法,這個寫法是為了匹配func.後面的所有字元以方便redirect域中引用,這種寫法的括號中的結構形式為...
URL重定向 跳轉繞過
302跳 即設定http響應頭locatioin url,如果url包含了crlf 回車換行 就可能隔斷了http響應頭,使得後面部分落到了http body,從而跳轉到構造的 註冊登入跳 開啟連線功能 使用者分享 收藏內容過後等等 1.正常在測試 時候,當發現url中存在以下引數,可以進行url跳...