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