Apache系统中的.htaccess文件(分布式配置文件)提供了针对目录改变配置的方法,也就是在一个特定的文件目录中放置一个包含指令的文件,以做用于此目录以及全部子目录.直白的说,.htaccess文件只是一个简单的文档,能够在里面添加些简单的命令实现各类不一样的配置.php
做用:html
1.设置404页面web
1) Apache服务器404页面的设置方法安全
在.htaccess文件中加入代码:服务器
ErrorDocument 404 /Error.html
创建简单的HTML404页面Error.html, 把该Error.html放置在网站根目录便可.dom
2) IIS/ASP.net下设置404错误页面分布式
首先,修改应用程序根目录的配置,打开"web.config"文件,在其中添加内容:网站
<configuration> <system.web> <customErrors mode="On" defaultRedirect="error.asp"> <error statusCode="404" redirect="nofound.asp"> </customErrors> </system.web> </configuration>
其中"error.asp"为系统默认的404页面,"nofound.asp"为自定义的404页面,使用时请修改相应文件名.ui
而后,在自定义404页面"nofound.asp"中加入:搜索引擎
<% Response.Status = "404 Not Found" %>
2. 实现URL重定向
咱们能够对网站进行从新规划,将文档进行迁移,或者更改目录,这个时候,来自搜索引擎或者其余网站连接过来的访问就可能错误.这种状况下,能够经过以下指令来完成旧的URL自动转向新的地址:
Redirect /旧目录/旧文件名 新文档的地址 或者整个目录的转向: Redirect /olddirectory http://www.newsite.com/newdirectory
这样,任何指向站点中olddirectory目录的请求将被从新指向新的站点,包括添加的额外URL信息,例如:
http://www.youroldsite.com/olddirectory/oldfiles/images/image.gif 请求被重定向到: http://www.newsite.com/olddirectory/oldfiles/images/image.gif
3. 密码保护
有时候你可能针对某个目录设定对应的密码保护,首先要生成一个.htpasswd文件,而后输入用于访问网站的用户名和密码,格式:
username password //其中password的应该是加密以后的密码,另外须要注意: .htpasswd文件的位置最好放置在www目录以外,较为安全
最后,在.htaccess中添加指令:
AuthUserFile /full/path/to/.htpasswd(.htpasswd的服务器目录) AuthGroupFile /dev/null (须要受权访问的目录) AuthName EnterPassword AuthType Basic (受权类型) Require valid-user
这样就完成了使用.htaccess文件实现网站目录密码保护
注: 在使用.htaccess来设置目录的密码保护的时候,它包含了密码文件的路径. 从安全考虑,有必要把.htaccess也保护起来,不让别人看到其中的内容.最简单的方式在.htaccess文件中加入指令:
order allow,deny deny from all
4. 拒绝某个ip的访问请求
order allow,deny deny from 220.134.342.33 deny from 220.134.342 allow from all
其中第二行代码为拒绝某个ip,第三行拒绝某个ip段, 若是想阻止全部人访问
deny from all
5.文件防盗链
RewriteEngine on RewriteCond %{ HTTP_REFERER } !^$ RewriteCond %{ HTTP_REFERER } !^http://(www.)?mydomain.com/.*$ [NC] RewriteRule .(gif&line;jpg)$ - [F]
RewriteEngine on RewriteCond %{ HTTP_REFERER } !^$ RewriteCond %{ HTTP_REFERER } !^http://(www.)?mydomain.com/.*$ [NC] RewriteRule .(gif&line;jpg)$ http://www.mydomain.com/替代图片文件名 [R,L]