.htaccess重定向和url重寫詳細介紹.htaccess是需要apache打開虛擬主機支持.htaccess才可以實現(xiàn)下面的功能哦,,下面我來介紹關于.htaccess阻止某些ip訪問,重定向和url重寫,限定訪問特點資源,實現(xiàn)緩存等功能介紹
什么是htaccess
概述來說,,htaccess文件是Apache服務器中的一個配置文件,,它負責相關目錄下的網(wǎng)頁配置,。通過htaccess文件,,可以幫我們實現(xiàn):網(wǎng)頁301重定向、自定義404錯誤頁面,、改變文件擴展名,、允許/阻止特定的用戶或者目錄的訪問、禁止目錄列表,、配置默認文檔等功能,。 一個簡單的重定向 復制代碼 代碼如下: Redirect 301 ^old.html$ http://localhost/new.html 這是設置一個http狀態(tài)碼為301(永久移動)并把所有訪問old.html轉向到new.html。使用了正則表達式來匹配訪問的頁面,,后面的url必須是完整路徑,。 Url重寫 復制代碼 代碼如下: RewriteEngine on RewriteRule ^old.html$ new.html 第一行打開重寫引擎 第二行是重寫規(guī)則。這樣用戶訪問old.html時實際卻是訪問的new.html,,而且用戶對此好吧知情,。因為地址欄里依舊顯示是old.html,。 為了在地址欄顯示新的訪問地址,我們可以加個f標志在rewriterule語句里,。 復制代碼 代碼如下: RewriteRule ^old.html$ http://hostname/new.html [r=301] 下面是把帶查詢參數(shù)的url重寫成對搜索引擎友好的url 復制代碼 代碼如下: RewriteRule ^products/([^/]+)/([^/]+)/([^/]+) product.php?cat=$1&brand=$2&prod=$3 這條規(guī)則允許訪問者以類似這樣的 url products/turntables/technics/sl1210, 來訪問product.php?cat=turntables&brand=technics&prod=sl1210. 括號里為一個單元,,分別對應后面的$1,$2,$3。[^/]+ 在原括號里表示除了/之外的任何一個或是多個字符,。 自定義錯誤頁面 復制代碼 代碼如下: ErrorDocument 404"/404.html" 這是定義404頁面無法找到的錯誤,,也可以定義其他錯誤代碼的頁面。 限定訪問特點資源 復制代碼 代碼如下: <Files"protectedfile.html"> AuthName"Username and password required" AuthUserFile/path/to/.htpasswd Require valid-user AuthType Basic </Files> 保護protectedfile.html,,authName是登陸框的提示信息,,authuserfile是.htpasswd文件的路徑 阻止某些ip訪問 復制代碼 代碼如下: order allow,deny deny from 192.168.0.1 allow from allOrder 告訴apache指令的順序。這里的這個是先允許后拒絕的,。雖然allow from all后出現(xiàn)但是還是在前面生效,。拒絕了192.168.0.1的訪問。也可以按段來屏蔽訪問的,,只要只指定前面的幾段就可以類似,,192.168. 實現(xiàn)緩存 復制代碼 代碼如下: ExpiresActive on ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" 第一行開啟,下面分別控制各種資源都加上一個月的緩存期,。這個功能依賴apache的mod_expires 模塊,。 認證舉例 如果你只是為了知道如何認證,而直接從這里開始看的,,有很重要的一點需要注意,,有一種常見的誤解,認為實現(xiàn)密碼認證必須要使用.htaccess文件,,其實是不正確的,。把認證指令放在主配置文件的<Directory>段中是一個更好的方法,而.htaccess文件應該僅僅用于無權訪問主配置文件的時候,。參見上述關于何時應該與何時不應該使用.htaccess文件的討論,。 有此聲明在先,如果你仍然需要使用.htaccess文件,,請繼續(xù)看以下說明,。 .htaccess文件的內(nèi)容: 復制代碼 代碼如下: 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 文件有如下內(nèi)容: Options +ExecCGI (注意:必須設置"AllowOverride Options"以允許在.htaccess中使用"Options"指令) /www/htdocs/example1/example2目錄中的.htaccess文件有如下內(nèi)容: Options Includes 您可能感興趣的文章:
|
|