最簡單方法,在所要禁止的目錄中的.htaccess文件中添加一下兩行代碼。
order allow,deny
deny from all php
(能夠把all換成某一ip地址)
----
【.htaccess簡介】
.htaccess文件,又叫分佈式配置文件,它提供了針對每一個目錄改變配置的方法,能夠在一個特定的文檔目錄中放置一個包含指令的文件,以達到控制此目錄及其子目錄的目的。通
常.htaccess文件的使用配置語法和主配置文件同樣,可是作爲用戶,固然所能使用的命令是受到限制的。系統管理員能夠經過配置apache的AllowOverride指令來配置決
定.htaccess文件中哪些指令有效。若是在文檔的子目錄中還設置了.htaccess文件的話,子目錄中的指令將會覆蓋掉上級目錄或者主服務器配置文件中的指令。此應用尤爲是ISP在
同一個機器上運行了多個用戶站點,而又但願用戶能夠本身改變配置的狀況下特別有意義。
【.htaccess應用】
一、錯誤文檔的定位
常見的客戶端請求錯誤返回代碼:
401 Authorization Required
403 Forbidden
404 Not Found
405 Method Not Allowed
408 Request Timed Out
411 Content Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type
常見的服務器錯誤返回代碼:
500 Internal Server Error
咱們能夠利用.htaccess指定本身事先製做好的錯誤提示頁面。例如:
ErrorDocument 404 /help/errors/notfound.html
ErrorDocument 500 /help/errors/internalerror.html
ErrorDocument 錯誤代碼 /目錄名/文件名.擴展名
固然若是提示的信息不多的話,咱們直接使用html就好了,如:
ErrorDocument 404 "Sorry the page you access is not exist"
以上指令等同於
<Directory /路徑>
ErrorDocument 404 "Sorry the page you access is not exist"
</Directory>
二、使用服務器認證
要利用.htaccess對某個目錄下的文檔設定訪問用戶和對應的密碼,首先要作的是生成一個.htpasswd的文本文檔,使用
htpasswd -c d:/passwords wwq
輸入用戶密碼便可生成.htpasswd的文本文檔
在.htaccess文件中加入:
AuthType Basic
AuthName "Restricted Files"
AuthUserFile d:/passwords
Require user wwq
以上只容許用戶wwq訪問目錄
容許多人訪問則必須創建一個組文件以肯定組中的用戶,其格式很簡單,能夠用你喜歡的編輯器創建,例如:
admin: wwq
editer: lily baty
我將它保存爲d:/下的groups文件
使用htpasswd d:/passwords lily(htpasswd d:/passwords groups)爲編輯組添加兩個用戶
修改.htaccess:
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile d:/passwords
AuthGroupFile d:/groups
Require group admin editer
固然也可使用Require valid-user指令容許密碼文件中的全部用戶使用正確的密碼進行訪問。
三、拒絕來自某個IP的訪問
order allow,deny
deny from 205.252.46.165 #拒絕ip地址爲205.252.46.165的訪問
deny from 219.5.45. #拒絕ip地址段爲219.5.45.1-255的訪問
deny from cyberthugs.com moreidiots.com #拒絕域名爲cyberthugs.com、moreidiots.com的訪問
allow from all
若是想禁止全部訪問,則可使用deny from all指令實現。
若是隻想指定域名的訪問則使用以下指令:
Order deny,allow
Deny from all #必須有這句,不然不起做用
Allow from dev.example.com #只容許dev.example.com的訪問
只容許本地訪問
Order deny,allow
Deny from all
Allow from 127.0.0.1
四、保護.htaccess文檔
若是在之前的老版本的apache中,直接用http://www.dd.com/www/.htaccess可能將站點的.htaccess文件獲取,經過它能夠獲得包含了密碼文件的路徑。不過如今這個在apache2中
好像就是多餘的了。不過咱們仍是能夠在.htaccess文件中加入以下指令,這樣就能夠將.htaccess保護起來。
<Files .htaccess>
order allow,deny
deny from all
</Files>
五、url轉向和ssi包含
有不少人都問我,個人站是租用別人的虛擬主機啊,怎麼用那個url重寫和ssi啊,是否是不能用啊,其實也不是不能用,用.htaccess就能夠實現,固然前提是你的服務提供商容許
啦。
Options +Includes
AddType text/html shtml
AddHandler server-parsed shtml
就可使用服務器端包含啦
使用Redirect指令實現URL轉向:
Redirect /舊目錄/舊文檔名 新文檔的地址
或者整個目錄的轉向: Redirect 舊目錄 新目錄
例如:Redirect /www/ http://localhost/test/
六、防止盜鏈
RewriteEngine on
RewriteCond % !^$
RewriteCond % !^http://(www/.)?域名.com/.*$ [NC]
RewriteRule /.(gif|jpg)$ - [F]
或者用圖片代替之
RewriteEngine on
RewriteCond % !^$
RewriteCond % !^http://(www/.)?域名.com/.*$ [NC]
RewriteRule /.(gif|jpg)$ http://www.域名.com/替代圖片文件名 [R,L]
【使用.htaccess文件的不足】
一、性能
AllowOverride啓用了使用.htaccess文件,則apache須要在每一個目錄中查找.htaccess文件。所以會致使性能降低。另外對每個請求,都須要讀取一次.htaccess文件,還有
apache必須在全部上級的目錄中查找.htaccess文件以使有效的指令都起做用,好比若是客戶端請求/www/htdocs/help中的頁面。服務器必須查找
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/help/.htaccess
四個額外文件(即便這些文件都不存在,固然你能夠僅僅容許根目錄使用.htaccess文件),也就是說目錄深度越深,則訪問的額外文件越多,性能越低了。
二、安全
因爲在/www/htdocs/help下面的.htaccess文件中放置指令與在主配置文件中<Directory /www/htdocs/help>中放置相同的指令是徹底等效的,這樣容許用戶本身修改服務器配置,
可能就會致使某些不肯意發生的意想不到的修改,這樣就會形成服務器安全問題。這樣你就必須考慮是否設置AllowOverride None來徹底禁用.htaccess文件。
--------------------------------------------------------------------------
一 開啓Mod_rewrite模塊
打開Apache2\conf\httpd.conf
搜索 LoadModule rewrite_module modules/mod_rewrite.so (Apache2是這個)
去掉前面的#
搜索AllowOverride None 替換爲 AllowOverride All
有好幾個找到和下面代碼相似的那個
</IfModule>
#
# "D:\usr\local\Apache2\cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "D:\usr\local\Apache2\cgi-bin">
AllowOverride All
Options None
Order allow,deny
Allow from all
</Directory>
二 在Apache2\conf\httpd.conf 最後一行添加
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
</IfModule> html
本文出自 蕭過無痕的棲息地 ,轉載時請註明出處及相應連接。 apache