.htaccess是什么

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.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> ,结果导致所有文件都被禁止访问。如果用了错误的规则,所有内容都将无法访问。

同样道理,如果要禁止其他文件的访问,用其他文件名替换就可以了。



作者:JasonQiao
链接:http://www.jianshu.com/p/ddca040c8d48
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

















以上是关于.htaccess是什么的主要内容,如果未能解决你的问题,请参考以下文章

apache_conf 强大的.htaccess片段,需要在最顶层使用RewriteEngine On

需要在 .htaccess 重写规则中转义 # (hash/pound) 字符

在htaccess中进行URL重写和重定向的确切过程是什么?

为啥我的 .htaccess 代码不能完美地用于漂亮的 URL

C# 最有用的(自定义)代码片段是啥? [关闭]

使用 .htaccess 为每个请求添加一个标头