.htaccess是apache虛擬目錄中一個可以用來代替apache中conf中的一些功能了,像重定向和url重寫或安全配置都可以利用它來完在下面來看看一些關于.htaccess例子.
- # 這是注釋
- # 指定默認首頁查找順序
- DirectoryIndex index.htm .index.php
- #自定義404頁面
- ErrorDocument 404 /error/404.html
- #比較下面2句: 默認是302,用戶訪問的是abc,但實際顯示的是def頁面,地址欄也還是顯示abc
- redirect /abc /def
- #redirect 301 /abc /def
- RewriteEngine on
- RewiteBase /
- #訪問old.html實則顯示的是index.php ,而地址欄依舊顯示old.html,對比后面帶中括號[]寫法區(qū)別
- RewriteRule ^old.html$ index.php
- #RewriteRule ^old.html$ /index.php [r=301]
- #訪問index.php需要驗證賬號密碼,如果是進入目錄要驗證,只須去掉<Files>標簽并把.htaccess文件放入對應目錄既可
- <Files "index.php">
- AuthName "Username and passwordsss required"
- # .htpasswd即驗證賬號密碼保存文件,名稱可自定義,但路徑必須是絕對路徑,否則會報500 internal server error錯誤
- AuthUserFile D:/Kuaipan/.htpasswd
- Require valid-user
- AuthType Basic
- </Files>
贊助商鏈接
- #訪問Vevb.com跳轉(zhuǎn)至m.survivalescaperooms.com
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^Vevb.com [NC]
- RewriteRule ^(.*)$ http://m.survivalescaperooms.com/$1 [L,R=301]
- #圖片防盜鏈:站外引用,直接跳轉(zhuǎn)到google.com
- RewriteCond %{HTTP_REFERER} !^$
- RewriteCond %{HTTP_REFERER} !^http://m.survivalescaperooms.com/.*$ [NC]
- RewriteCond %{HTTP_REFERER} !^http://m.survivalescaperooms.com$ [NC]
- RewriteCond %{HTTP_REFERER} !^http://Vevb.com/.*$ [NC]
- RewriteCond %{HTTP_REFERER} !^http://Vevb.com$ [NC]
- RewriteRule .*.(jpg|jpeg|gif|png|bmp|js|css|swf)$ http://www.google.com [R,NC]
htaccess加強網(wǎng)站的安全設置
用.htaccess 自定義錯誤頁的方法,系統(tǒng)默認的錯誤頁面太丑啦,自己設計一個吧,可以是php等動態(tài)文件格式的哦,通過在.htaccess文件里加入下面的文字將其變成自定義頁面:
ErrorDocument 404 /err/404.php
ErrorDocument 503 /err/503.php
不管是404/403/400/503等其它錯誤都可以自己設計指定一個頁面哦.
用.htaccess禁止顯示目錄列表
有些時候,你的目錄里沒有默認的index文件,當有人在瀏覽器地址欄訪問該目錄,目錄下所有的文件都會顯示出來,這會給你的網(wǎng)站留下安全隱患.
為避免這種情況,而不必創(chuàng)建一堆的新index文件,你可以在你的.htaccess加入下面的代碼來阻止目錄列表的顯示:
Options -Indexes
用.htaccess阻止特定的IP地址
想允許某些特定IP的用戶可以訪問你的網(wǎng)站,例如:只允許使用特定ISP的用戶進入某個目錄,或者想封禁某些特定的IP地址,例如:將低級用戶隔離于你的信息版面外.
現(xiàn)在網(wǎng)上的大多數(shù)用戶都使用動態(tài)IP地址,這個方法一般很少用.
使用以下命令封禁一個IP地址:
deny from 127.0.0.10
這里的127.0.0.10是被封禁的IP地址,如果封禁整個網(wǎng)段的地址,可以這樣寫.
deny from 210.10.56.
則將封禁210.10.56.0~210.10.56.255的所有IP地址,用.htaccess只允許某個IP地址訪問網(wǎng)站:
allow from 127.0.0.10
當然也可以想上面一樣運行一個ip段訪問,用.htaccess阻止所有人訪問目錄.
deny from all
這個命令并不影響腳本程序使用這個目錄下的文檔,用.htaccess 替換默認的首頁index文件,如果想更改默認的首頁文件(index.htm等),使用.htaccess可以指定任何的頁面作為默認的首頁.
下面的代碼設置 index.php / index.php3 / messagebrd.pl / index.html / index.htm同時指定了這些頁面為默認的首頁,從左到右,如果存在就訪問.
DirectoryIndex index.php index.php3 messagebrd.pl index.html index.htm
利用.htaccess重定向,重定向文件的例子:
Redirect /location/from/root/file.html /new/file/2.html
haccess重定向整個網(wǎng)站的目錄
假如你的網(wǎng)站上有一個名為 /olddirectory 的目錄,并且你已經(jīng)新建了一個 /newdirectory 文檔,你可以將舊目錄下所有的文件做一次重定向而不必一一聲明:
Redirect /olddirectory /newdirectory
利用.htaccess 保護密碼
.htaccess具有完美的安全性(即訪問者必須知曉密碼才可以訪問目錄,并且絕無“后門”可走).
1.密碼保護的.htaccess文件
利用.htaccess將一個目錄加上密碼保護分兩個步驟,在你的.htaccess文檔里加上幾行代碼,再將.htaccess文檔放進你要保護的目錄下:
- AuthName "Section Name"
- AuthType Basic
- AuthUserFile /full/path/to/.htpasswd
- Require valid-user
根據(jù)你的網(wǎng)站情況修改上述內(nèi)容,如用被保護部分的名字“Section Name”,/full/parth/to/.htpasswd則應該替換為指向.htpasswd文件(后面詳述該文檔)的完整服務器路徑,如果你不知道你網(wǎng)站空間的完整路徑,請詢問一下你的系統(tǒng)管理員.
2.密碼保護的.htpasswd文件
目錄的密碼保護比.htaccess的其他功能要麻煩些,因為你必須同時創(chuàng)建一個包含用戶名和密碼的文檔,用于訪問你的網(wǎng)站,相關信息(默認)位于一個名為.htpasswd的文檔里,像.htaccess一樣,.htpasswd也是一個沒有文件名且具有8位擴展名的文檔,可以放置在你網(wǎng)站里的任何地方(此時密碼應加密),但建議你將其保存在網(wǎng)站W(wǎng)eb根目錄外,這樣通過網(wǎng)絡就無法訪問到它了.
3.輸入用戶名和密碼
創(chuàng)建好.htpasswd文檔后(可以通過文字編輯器創(chuàng)建),下一步是輸入用于訪問網(wǎng)站的用戶名和密碼,應為:username:password
“password”的位置應該是加密過的密碼,你可以通過幾種方法來得到加密過的密碼:一是使用一個網(wǎng)上提供的permade腳本或自己寫一個,另一個很不錯的username/password加密服務是通過KxS網(wǎng)站,這里允許你輸入用戶名及密碼,然后生成正確格式的密碼.
對于多用戶,你只需要在.htpasswd文檔中新增同樣格式的一行即可,另外還有一些免費的腳本程序可以方便地管理.htpasswd文檔,可以自動新增/移除用戶等.
4.訪問網(wǎng)站
當你試圖訪問被.htaccess密碼保護的目錄時,你的瀏覽器會彈出標準的username/password對話窗口,如果你不喜歡這種方式,有些腳本程序可以允許你在頁面內(nèi)嵌入username/password輸入框來進行認證,你也可以在瀏覽器的URL框內(nèi)以以下方式輸入用戶名和密碼(未加密的):
http://username:password@www.website.com/directory/
新聞熱點
疑難解答
圖片精選