.htaccess 文件的使用
用于服务器对文件夹的控制
官方解释为 :分布式配置文件 ,提供了针对目录改变配置的方法;
项目可以有多个这样的配置文件,子目录文件会覆盖父目录的配置
在apache(这里泛指服务器)中,/conf/vhost/xx.conf文件配置中
在 AllowOverride 设置为 None 时, .htaccess 文件将被完全忽略。
当此指令设置为 All 时,所有具有 ".htaccess" 作用域的指令都允许出现在 .htaccess 文件中。
官方对此给予了一段建议 : 不建议使用此文件
以下是一些使用方法---来自百度文库
怎样利用.htaccess文件
- 浏览: 4342
- |
- 更新: 2010-11-18 13:42
加入杂志
1
2
3
4
5
6
7
8
步骤/方法
- 1禁止对无索引文件的目录进行文件列表展示
默
认情况下,当我们访问网站的某个无索引文件(如index.html,index.htm或index.php)目录时,服务器会显示该目录的文件和子目
录列表,这是非常危险的,因为它可能暴露网站的内部结构,也许不小心就将含有敏感信息的文件公之于众了,为了禁止这种行为,我们可以在网站根目录创建一
个.htaccess文件,内容如下: - 2创建重定向或改变丢失文件的响应状态
当我们从服务器请求一个找不到的文件时,默认情况下服务器会返回404状态码,浏览器和访问者便知道URL指定的位置找不到该文件,但这是一个通用的消息,没有太大的实际意义,我们希望告诉浏览器和访问者更多有用的信息,如:
◆文件被永久移走
状态码301告诉浏览器文件已经被永久移动到另一个位置,这样我们就可以通过.htaccess文件实现重定向了,例如,使用下面的代码可以将浏览器重定向到新的地址:
Redirect 301 /path/from/htaccess/file.html http://www.domain.tld/path/file.html
◆文件被暂时移走
状态码307告诉浏览器文件已经被移走,但这是暂时的,浏览器接收到301状态码时就会访问新地址,但不用改变文件的链接,也不会为新地址创建缓存(除非它受Cache-Control或过期头信息字段控制),浏览器每次都会继续请求源地址。
Redirect 307 /path/from/htaccess/file.html http://www.domain.tld/path/file.html
◆文件不存在
状态码410告诉浏览器,它请求的文件已经从服务器上永久删除,和404不一样,404仅仅表示文件不在这里的意思,而410表示文件不仅不在这里,在其它地方也没有。 - 3创建自定义错误响应页面
如果不向浏览器返回状态码,我们可以创建自己的错误页面,我们可以创建一个自定义错误页面,例如,对于401状态码我们可以创建一个未经授权的错误页面,对于404状态码,我们可以创建一个未找到错误页面,我们需要做的就是修改.htaccess文件,添加下面两行代码: - 4给不同类型的文件设置缓存过期时间
这个设置告诉浏览器保持文件的缓存多长时间,在未过期前,访问该文件时就不用向服务器发起请求了,服务器向浏览器返回文件时,会附加上一个Expires头信息。
我们可以使用ExpiresDefault指令后面跟一个基础时间+时间长度设置文件的默认过期时间,使用ExpiresByType指令后面跟一个文件类型+基础时间+时间长度指定特定文件类型的过期时间。
基础时间可以是访问时间,它从浏览器请求该文件时开始计数,也可以是修改时间,它从文件最后一次修改时间开始计数,注意,如果你使用修改时间,返回给浏览器的动态内容不会加上Expires头,如动态生成的图像,因为非已存在的文件不存在修改时间。
过期时间要和基础时间结合使用,通过添加一个plus和一个时间,这个时间可以给出年、月、日,时、分、秒,如果我们只使用一个单位,可以使用单数表示,例如,我们可以指定它为“1分钟”或“10分钟”。
在下面的例子中,我使用ExpiresDefault指令将所有文件的默认过期时间设为1天,然后使用ExpiresByType指令为不同文件类型指定过期时间。 - 5文件发送到浏览器之前先压缩
任何现代浏览器都能处理服务器压缩过的文件,这样做也是为了减少页面的载入时间,如果服务器默认没有开启文件压缩功能,我们可以通过.htaccess文件来开启。
AddOutputFilterByType
DEFLATE text/html text/plain text/xml text/css application/javascript
application/x-javascript application/rss+xml application/atom_xml
text/javascript
注意,我这里没有为图像文件开启压缩,因为我们的图像文件已经通过其它压缩技术处理好了。 - 6给文件夹设置密码保护
为了保护含有敏感数据的特殊文件夹,我们需要创建一个包含有效的用户名和密码的文件,然后在.htaccess文件中添加一些设置,但用户名和密码仍然是以明文形式发送到服务器的,因此很容易受到中间人攻击,除非我们使用SSL。
首
先,我们创建一个名为.htpasswd的文件,将权限修改为600(只有文件所有者有读写权),这样其他用户才不能访问。创建好文件后,我们需要向这个
文件注入用户名和密码,如果你使用Linux或Unix类操作系统,使用htpasswd命令就可以办到,如果你能通过SSH登陆到你的服务器,那么你可
以使用htpasswd管理.htpasswd文件中的用户名和密码,如果不行,还有很多在线工具可以帮助你生成.htpasswd文件中使用的密码。
使
用下面的命令可以向这个文件中注入用户名和密码:如:它会提示你输入密码,然后他会加密密码并保存到.htpasswd文件中。如果Apache是安装在
除Windows,Netware和TPF(一种IBM大型机)外的任何系统上,默认情况下下,它会调用crypt()函数加密密码。使用这个命令我们可
以创建多个用户,并可以修改已有用户的密码,你可以使用-n参数获得加密后的密码字符串值。它会返回类似下面这样的字符串:然后用文本编辑器打
开.htpasswd文件,将上面返回的内容粘贴到文件中,每行代表一个用户。
还可以使用-m参数调用md5加密方法加密密码,在Windows,Netware和TPF下,默认就使用的是md5加密,也可以适应-s参数调用SHA加密,使用-d参数告诉命令调用crypt函数,在大多数系统上,这也是默认的行为。
如果文件不存在,则添加-c参数,它会创建文件,如果文件已经存在,添加这个参数后就会重写整个文件,只留下新创建的用户,如果想删除.htpasswd文件中的某个用户,使用-D参数。
最后,我们可以和其它命令结合使用,如果加入参数-b,我们可以直接在命令中加上密码,但这样做是不安全的。
htpasswd .htpasswd juan randompassword
创建好用户后,他们就可以访问这个目录及其子目录了,但我们还需要在要保护的文件夹下添加一个.htaccess文件,内容如下:
这
里的AuthName指的是要求你输入用户名和密码时的提示信息,AuthType表示需要的认证类型,在这个例子中,我只想弹出一个对话框,要求输入用
户名和密码,因此设置为Basic,AuthUserFile指的是保存用户名和密码的文件位置,在这个例子中指的是.htpasswd文件,位置和我们
的.htaccess文件相同,Require valid-user指定只有.htpasswd文件包含的合法用户才能访问。 - 7将HTML文件当PHP文件使
为了将html扩展名文件当作php文件使用,需要在.htaccess文件中添加下面的内容:这样服务器就会把HTML文件作为PHP文件进行解析。 - 8修改PHP设置
如
果我们不能访问php.ini文件,有些主机服务商允许我们修改.htaccess文件来改变一些PHP设置,例如,我想生成所上传图片的缩略图,有些主
机服务商默认将PHP的内存限制为2MB,显然要生成缩略图是不够用的,因此我要将这个限制改大一点,如增加到16MB,如果要移除内存限制,可以将其设
为-1。
为了在.htaccess文件中修改PHP设置,服务器必须启用了AllowOverride Options(或AllowOverride all)选项,如果那样,我们只需要在.htaccess文件中添加下面一行命令即可:
.htaccess 文件的使用的更多相关文章
- 用.htaccess文件实现URL重写
注:第一部分来自 http://www.cnblogs.com/wangkongming/archive/2012/11/13/2768251.html 这位博主的个人网站简洁 还有诗歌 ...
- 在linux 服务器上用.htaccess文件实现二级域名访问子目录
实现子域名绑定网站子目录的方法有很多,比如可以用js跳转,可以用php实现,可以301跳转等,但最常用的应该是RewriteEngine方式了. 新建一个笔记本命名为.htaccess(在wind ...
- iis6上使用.htaccess文件,ISAPI_Rewrite的安装及使用
在Apache上很有用的.htaccess文件在IIS上就没有,要想实现类似的跳转功能可以使用ISAPI_Rewrite来代替,这是一个专门为IIS设置的工具,目的就是代替.htaccess实现很多功 ...
- ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
1.首先修改Apache的httpd.conf文件. 确认httpd.conf配置文件中加载了mod_rewrite.so 模块,加载的方法是去掉mod_rewrite.so前面的注释#号 讲http ...
- apache配置rewrite及.htaccess文件(转载)
今天看到一个哥们的帖子发了个rewrite的帖子,以前也写过一个,配置挺简单的,但当时没注意这个问题,当时没有用到.htaccess文件,在机子上测试了一下,发现确实没法用,于是开始找问题的所在. 自 ...
- htaccess文件还可以被用来把访问网站的流量劫持到黑客的网站
看是否有文件上传操作(POST方法), IPREMOVED--[01/Mar/2013:06:16:48-0600]"POST/uploads/monthly_10_2012/view.ph ...
- 禁止浏览.htaccess文件
很多黑客会攻击和利用.htaccess做网站跳转,所以保护好.htaccess文件尤为重要. 在apache的httpd.conf的配置文件中 默认是已经设置了禁止对.htaccess的访问,截取相关 ...
- 在.htaccess文件中写RewriteRule无效的问题的解决
近来在Apache Rewrite 拟静态配置时,遇到个问题.写的如下: RewriteEngine onRewriteRule ^/t_(.*)/$ /test.php?id=$1 保存在httpd ...
- 创建.htaccess文件
在linux下创建.htaccess文件非常简单,直接新建一个文件并重命名为.htaccess即可. 下面我来讲下如何在Window下创建.htaccess文件 一般在本地电脑上是无法建立 .htac ...
- .htaccess文件详解
启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用 笼统地来说,.htaccess可以帮我们实现包括:文件夹密码 ...
随机推荐
- URAL 1167. Bicolored Horses (DP)
题目链接 题意 :农夫每天都会放马出去,然后晚上把马赶入马厩,于是让马排成一行入马厩,但是不想马走更多的路,所以让前p1匹入第一个马厩,p2匹马入第二个马厩…………但是他不想让他的任何一个马厩空着,所 ...
- (11)nehe教程5---3D空间
3D空间: 我们使用多边形和四边形创建3D物体,在这一课里,我们把三角形变为立体的金子塔形状,把四边形变为立方体. 在上节课的内容上作些扩展,我们现在开始生成真正的3D对象,而不是象前两节课中那样3D ...
- VISO下载地址
http://pan.baidu.com/share/home?uk=4011207371#category/type=0
- powermockito “mock public 方法内部 Private方法的问题”
我需要测试的方法是 public 方法: public ResponseResult subscribe(SysSubscription sysSubscription) throws JsonGen ...
- Project Euler 110:Diophantine reciprocals II 丢番图倒数II
Diophantine reciprocals II In the following equation x, y, and n are positive integers. For n = 4 th ...
- 注塑成型工艺知识大全(Injection Molding)
注塑成型,广泛用于热塑性塑料产品的制造工艺 工艺成本:模具费用(高),单件费用(低) 典型产品:汽车塑料部件,消费电子产品塑料外壳等 产量适合:只适合大批量生产 质量:极高的表面精确度,同一批次的产品 ...
- MFC的GUI窗口使用Console输出函数printf(AllocConsole后,使用GetStdHandle取得句柄,然后就可以操作了)
在GUI程序中使用printf函数: #include <io.h> #include <fcntl.h> void InitConsole() { int nRet= 0; ...
- swift:创建集合视图UICollectionView
swift中创建集合视图和OC中差不多,主要是实现UICollectionViewDataSource数据源协议和UICollectionViewDelegateFlowLayout自定义布局协议,其 ...
- Linux命令-free
显示系统内存使用情况 free [-m / -g / -h] [root@localhost test]# free -m total used free shared buff/cache ava ...
- 【推荐】《Netty in action》书籍
最近准备开始阅读一下<Netty in action>并且准备构架设计一个分布式系统.用于新项目. 貌似压力很大啊.压力就是东西.希望自己能够调节好. Netty in action是Ne ...