【.htaccess应用】
1、错误文档的定位
常见的客户端请求错误返回代码:
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"
以上指令等同于
ErrorDocument 404 "Sorry the page you access is not exist"
2、使用服务器认证
要利用.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指令允许密码文件中的所有用户使用正确的密码进行访问。
3、拒绝来自某个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
4、保护.htaccess文档
如果在以前的老版本的apache中,直接用http://www.dd.com/www/.htaccess可能将站点的.htaccess文件获取,通过它可以得到包含了密码文件的路径。不过现在这个在apache2中
好像就是多余的了。不过我们还是可以在.htaccess文件中加入如下指令,这样就可以将.htaccess保护起来。
order allow,deny
deny from all