.htaccess 文件的使用

用于服务器对文件夹的控制javascript

官方解释为 :分布式配置文件 ,提供了针对目录改变配置的方法;php

项目能够有多个这样的配置文件,子目录文件会覆盖父目录的配置css

在apache(这里泛指服务器)中,/conf/vhost/xx.conf文件配置中html

  在 AllowOverride 设置为 None 时, .htaccess 文件将被彻底忽略。java

  当此指令设置为 All 时,全部具备 ".htaccess" 做用域的指令都容许出如今 .htaccess 文件中。apache

 

官方对此给予了一段建议  : 不建议使用此文件浏览器

 

 

如下是一些使用方法---来自百度文库缓存

 

 

怎样利用.htaccess文件

  • 浏览: 4342
  • |
  • 更新: 2010-11-18 13:42

加入杂志安全

步骤
网站巧妙利用.htaccess文件,一共8种方法。

步骤/方法

    1. 1
      禁止对无索引文件的目录进行文件列表展现
      默 认状况下,当咱们访问网站的某个无索引文件(如index.html,index.htm或index.php)目录时,服务器会显示该目录的文件和子目 录列表,这是很是危险的,由于它可能暴露网站的内部结构,也许不当心就将含有敏感信息的文件公之于众了,为了禁止这种行为,咱们能够在网站根目录建立一 个.htaccess文件,内容以下:
    2. 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. 3
      建立自定义错误响应页面
      若是不向浏览器返回状态码,咱们能够建立本身的错误页面,咱们能够建立一个自定义错误页面,例如,对于401状态码咱们能够建立一个未经受权的错误页面,对于404状态码,咱们能够建立一个未找到错误页面,咱们须要作的就是修改.htaccess文件,添加下面两行代码:
    4. 4
      给不一样类型的文件设置缓存过时时间
      这个设置告诉浏览器保持文件的缓存多长时间,在未过时前,访问该文件时就不用向服务器发起请求了,服务器向浏览器返回文件时,会附加上一个Expires头信息。
      咱们可使用ExpiresDefault指令后面跟一个基础时间+时间长度设置文件的默认过时时间,使用ExpiresByType指令后面跟一个文件类型+基础时间+时间长度指定特定文件类型的过时时间。
      基础时间能够是访问时间,它从浏览器请求该文件时开始计数,也能够是修改时间,它从文件最后一次修改时间开始计数,注意,若是你使用修改时间,返回给浏览器的动态内容不会加上Expires头,如动态生成的图像,由于非已存在的文件不存在修改时间。
      过时时间要和基础时间结合使用,经过添加一个plus和一个时间,这个时间能够给出年、月、日,时、分、秒,若是咱们只使用一个单位,可使用单数表示,例如,咱们能够指定它为“1分钟”或“10分钟”。
      在下面的例子中,我使用ExpiresDefault指令将全部文件的默认过时时间设为1天,而后使用ExpiresByType指令为不一样文件类型指定过时时间。
    5. 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. 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. 7
      将HTML文件当PHP文件使
      为了将html扩展名文件看成php文件使用,须要在.htaccess文件中添加下面的内容:这样服务器就会把HTML文件做为PHP文件进行解析。
    8. 8
      修改PHP设置
      如 果咱们不能访问php.ini文件,有些主机服务商容许咱们修改.htaccess文件来改变一些PHP设置,例如,我想生成所上传图片的缩略图,有些主 机服务商默认将PHP的内存限制为2MB,显然要生成缩略图是不够用的,所以我要将这个限制改大一点,如增长到16MB,若是要移除内存限制,能够将其设 为-1。
      为了在.htaccess文件中修改PHP设置,服务器必须启用了AllowOverride Options(或AllowOverride all)选项,若是那样,咱们只须要在.htaccess文件中添加下面一行命令便可:
相关文章
相关标签/搜索