.htaccess是什么?
.htaccess叫分布式配置文件,它提供了针对目录改变配置的方法——在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。并且子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。一般来说,如果你的虚拟主机使用的是Unix或Linux系统,或者任何版本的Apache网络服务器,从理论上讲都是支持.htaccess的。
.htaccess是什么?.htaccess是在Apache HTTP Server这款服务器架设软件下的一个对于系统目录进行各种权限规则设置的一个文件,存在于Linux操作系统中。比较常见的是定义默认首页名称,404页面,301转向,等等,还有更多的功能比如伪静态,限制图片外链,限制下载,密码保护,去除页面广告等等,还有非常多的功能就不一一列举。 其实这些功能大多可以在cPanel控制面板来进行设置的(相当于是.htaccess的图形化界面)。但对于高手来讲,cPanel对于htaccess提供的功能还是太少了点,手工编辑才是王道。
自定义错误页面(直接拷贝即可)
ErrorDocument 404 /error-pages/not-found.html
ErrorDocument 503 /error-pages/service-unavailable.html
IP禁止
Order allow,deny
Deny from 123.45.67.8
Deny from 123.123.7
Allow from all
上面能禁止IP地址在123.45.67.8以及IP地址开头为123.123.7的任何人。例如123.123.74.42 就不能得到访问。
变更默认首页
DirectoryIndex homepage.html
去除页面广告(不一定适用所有免费空间)
LayoutIgnoreURI *.php
LayoutIgnoreURI *.cgi
LayoutIgnoreURI *.htm
LayoutIgnoreURI *.html
LayoutIgnoreURI *.txt
页面跳转
Redirect page1.html page2.html
如果某人访问 http://www.example.com/page1.html,他将被跳转到(带有HTTP状态代码302)的http://www.example.com/page2.html
服务器内置SSI SSI使用详解
AddType text/html .shtml
AddHandler server-parsed .shtml
Options Indexes FollowSymLinks Includes
防止图片热链后面的 .htaccess规则使用了mod rewrite。
特别域名
RewriteEngine onRewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?baddomain1\.com [NC,OR]RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?baddomain2\.com [NC,OR]RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?baddomain3\.com [NC]RewriteRule \.(gif|jpg)$ http://www.example.com/hotlink.gif [R,L]
非特别域名
RewriteEngine onRewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^http://(www\.)?example.com/.*$ [NC]RewriteRule \.(gif|jpg)$ http://www.example.com/hotlink.gif [R,L]
除非 example.com有这个图片,浏览器才能看到hotlink.gif.
注意:Hotlink热链保护使用 .htaccess 依赖客户端在http GET请求中发送正确的”提交”值。
禁止.htaccess文件被查看
在.htaccess文件中加入如下代码就可以禁止别人访问你的.htaccess文件:
<Files .htaccess>
order allow,deny
deny from all
</Files>
这个网上的大部分版本都有错误,大部分版本丢掉了<Files .htaccess> ,结果导致所有文件都被禁止访问。如果用了错误的规则,所有内容都将无法访问。
同样道理,如果要禁止其他文件的访问,用其他文件名替换就可以了。