htaccess重定向和url重寫詳細介紹

2022-09-04 09:54:09 字數 3391 閱讀 8058

.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跳...