apache.htaccess:详解Apache中.htaccess文件的功能写法

  apache中.htaccess文件功能写法

  - .htaccess文件(或者"分布式配置文件"提供了针对目录改变配置思路方法个特定文档目录中放置个包含个或多个指令文件 以作用于此目录及其所有子目录作为用户所能使用命令受到限制管理员可以通过ApacheAllowOverride指令来设置

  - 子目录中指令会覆盖更高级目录或者主服务器配置文件中指令

  - .htaccess必须以ASCII模式上传最好将其权限设置为644

  文档定位

  常用客户端请求返回代码:

  401 Authorization Required

  403 Forbidden

  404 Not Found

  405 Method Not Allowed

  408 Request Timed Out

  411 Content Length Required

  412 Precondition Failed

  413 Request Entity Too Long

  414 Request URI Too Long

  415 Unsupported Media Type

  常见服务器返回代码:

  500 Internal Server Error

  用户可以利用.htaccess指定自己事先制作好提醒页面般情况下人们可以专门设立个目录例如errors放置这些页面然后再.htaccess中加入如下指令:

  ErrorDocument 404 /errors/notfound.html

  ErrorDocument 500 /errors/ernalerror.html

  条指令上述第条指令意思是对于404也就是没有找到所需要文档时候得显示页面为/errors目录下notfound.html页面不难看出语法格式为:

  ErrorDocument 代码 /目录名/文件名.扩展名

  如果所需要提示信息很少不必专门制作页面直接在指令中使用HTML号了例如下面这个例子:

  ErrorDocument 401 "<body bgcolor=#ffffff><h1>你没有权限访问该页面请放弃!</h1></body>"

  文档访问密码保护

  要利用.htaccess对某个目录下文档设定访问用户和对应密码首先要做是生成个.htpasswd文本文档例如:

  zheng:y4E7Ep8e7EYV

  这里密码经过加密用户可以自己找些工具将密码加密成.htaccess支持编码该文档最好不要放在www目录下建议放在www根目录文档的外这样更为安全些

  有了授权用户文档可以在.htaccess中加入如下指令了:

  AuthUserFile .htpasswd服务器目录

  AuthGroupFile /dev/null (需要授权访问目录)

  AuthName EnterPassword

  AuthType Basic (授权类型)

  require user wsabstract (允许访问用户如果希望表中所有用户都允许可以使用 require valid-user)

  注括号部分为学习时候自己添加注释

  拒绝来自某个IP访问

  如果我不想某个政府部门访问到我站点内容那可以通过.htaccess中加入该部门IP而将它们拒绝在外

  例如:

  order allow,deny

  deny from 210.21.112.43

  deny from 219.146.95

  allow from all

  第 2行拒绝某个IP第 3行拒绝某个IP段也就是219.146.95.0~219.146.95.255

  想要拒绝所有人?用deny from all好了不止用IP也可以用域名来设定

  保护.htaccess文档

  在使用.htaccess来设置目录密码保护时它包含了密码文件路径从安全考虑有必要把.htaccess也保护起来不让别人看到其中内容虽然可以用其他方式做到这点比如文档权限不过.htaccess本身也能做到只需加入如下指令:

<Files .htaccess>
order allow,deny
deny from all
</Files>
  URL转向



  我们可能对网站WebSite进行重新规划将文档进行了迁移或者更改了目录这时候来自搜索引擎或者其他网站WebSite链接过来访问就可能出错这种情况下可以通过如下指令来完成旧URL自动转向到新地址:

  Redirect /旧目录/旧文档名 新文档地址

  或者整个目录转向:

  Redirect 旧目录 新目录

  改变缺省首页文件

  般情况下缺省首页文件名有default、index等不过有些时候目录中没有缺省文件而是某个特定文件名比如在pmwiki中是pmwiki.php这种情况下要用户记住文件名来访问很麻烦在.htaccess中可以轻易设置新缺省文件名:

  DirectoryIndex 新缺省文件名

  也可以列出多个顺序表明它们的间优先级别例如:

  DirectoryIndex filename.html index.cgi index.pl default.htm

  防止盗链

  如果不喜欢别人在他们网页上连接自己图片、文档也可以通过htaccess指令来做到

  所需要指令如下:

RewriteEngine on
RewriteCond % !^$
RewriteCond % !^http://(www.)?ddvip.com/.*$ [NC]
RewriteRule .(g|jpg)$ - [F]
  如果觉得让别人页面开个天窗不好看那可以用张图片来代替:

RewriteEngine on
RewriteCond % !^$
RewriteCond % !^http://(www.)?mydo.com/.*$ [NC]
RewriteRule .(g|jpg)$ http://www.ddvip.com/img_PageNotFound.g [R,L]




Tags:  .htaccess404 windowshtaccess .htaccess apache.htaccess

延伸阅读

最新评论

发表评论