您现在的位置是:芭奇站群管理系统 > 经验心得 > -> .htaccess小技巧

.htaccess小技巧

时间:2010-05-14 22:57

  .htaccess小技巧

  .htaccess文件(hypertextaccessfile)是apacheweb服务器的一个非常强大的配置文件,对于这个文件,apache有一堆参数可以让你配置出几乎随心所欲的功能。.htaccess配置文件坚持了unix的一个文化——使用一个ascii的纯文本文件来配置你的网站的访问策略。这篇文章包括了16个非常有用的小技巧。另外,因为.htaccess是一个相当强大的配置文件,所以,一个轻微的语法错误会造成你整个网站的故障,所以,在你修改或是替换原有的文件时,一定要备份旧的文件,以便出现问题的时候可以方便的恢复。

  1.使用.htaccess创建自定义的出错页面。对于linuxapache来说这是一项极其简单的事情。使用下面的.htaccess语法你可以轻松的完成这一功能。(把.htaccess放在你的网站根目录下)

  errordocument401/error/401.php

  errordocument403/error/403.php

  errordocument404/error/404.php

  errordocument500/error/500.php

  2.设置网站的时区

  setenvtzamerica/houston

  3.阻止ip列表

  有些时候,你需要以ip地址的方式阻止一些访问。无论是对于一个ip地址还是一个网段,这都是一件非常简单的事情,如下所示:

  allowfromall

  denyfrom145.186.14.122

  denyfrom124.15

  apache对于被拒绝的ip会返回403错误。

  4.把一些老的链接转到新的链接上——搜索引擎优化seo

  redirect301/d/file.htmlabcdhtaccesselite.com/r/file.html

  5.为服务器管理员设置电子邮件。

  serversignatureemail

  setenvserver_admindefault@domain.com

  6.使用.htaccess访止盗链。如果你网站上的一个图片被别的n多的网站引用了,那么,这很有可能会导致你服务器的性能下降,使用下面的代码可以保护某些热门的链接不被过多的引用。

  options+followsymlinks

  #protecthotlinking

  rewriteengineon

  rewritecond%{http_referer}!^$

  rewritecond%{http_referer}!^abcd(abcd)?domainname.com/[nc]

  rewriterule..(gifjpgpng)$abcddomainname.com/img/hotlink_f_o.png[nc]

  7.阻止useragent的所有请求

  ##.htaccesscode::begin

  ##blockbadbotsbyuser-agent

  setenvifnocaseuser-agent^frontpage[nc,or]

  setenvifnocaseuser-agent^java.[nc,or]

  setenvifnocaseuser-agent^microsoft.url[nc,or]

  setenvifnocaseuser-agent^msfrontpage[nc,or]

  setenvifnocaseuser-agent^offline.explorer[nc,or]

  setenvifnocaseuser-agent^[ww]eb[bb]andit[nc,or]

  setenvifnocaseuser-agent^zeus[nc]

  orderallow,deny

  allowfromall

  denyfromenv=bad_bot

  ##.htaccesscode::end

  8.把某些特殊的ip地址的请求重定向到别的站点

  errordocument403abcdyoudomain.com

  orderdeny,allow

  denyfromall

  allowfrom124.34.48.165

  allowfrom102.54.68.123

  9.直接找开文件而不是下载–通常,我们打开网上文件的时候总是会出现一个对话框问我们是下载还是直接打开,使用下面的设置就不会出现这个问题了,直接打开。

  addtypeapplication/octet-stream.pdf

  addtypeapplication/octet-stream.zip

  addtypeapplication/octet-stream.mov

  10.修改文件类型–下面的示例可以让任何的文件都成为php那么被服务器解释。比如:myphp,cgi,phtml等。

  forcetypeapplication/x-httpd-php

  sethandlerapplication/x-httpd-php

  11.阻止存取.htaccess文件

  #securehtaccessfile

  orderallow,deny

  denyfromall

  12.保护服务器上的文件被存取

  #preventaccessofacertainfileorderallow,deny

  denyfromall

  13.阻止目录浏览

  #disabledirectorybrowsing

  optionsall-indexes

  14.设置默认主页

  #servealternatedefaultindexpage

  directoryindexabout.html

  15.口令认证–你可以创建一个文件用于认证。下面是一个示例:

  #toprotectafile

  authtypebasic

  authname“prompt”

  authuserfile/home/path/.htpasswd

  requirevalid-user

  #password-protectadirectory

  resides

  authtypebasic

  authname“thisdirectoryisprotected”

  authuserfile/home/path/.htpasswd

  authgroupfile/dev/null

  requirevalid-user

  16.把老的域名转像新的域名

  #redirectfromolddomaintonewdomain

  rewriteengineon

  rewriterule^(.)$abcdyourdomain.com/$1[r=301,l]

  .htaccess限制目录执行权限

  复制内容到剪贴板代码:rewriteengineon

  rewritecond%{http_referer}!0dsf4456asdfsdfsdfsfsdf6546sdf50g9f0h4adh564ag0d880adfh7940d5604ad[nc]

  rewriterule..(php)$[l]众所周知,ixwebhosting在一个ip下只能做一个站,独立ip用完之后,新建站的话用的都是共享ip,可是国外的ip经常面临被封的命运,所以很多人都想在一个ip下面建多个站。

  因为ix的空间支持.htaccess文件,况且网站都是独立ip,所以我们将网站的域名解析到自己的独立ip,然后在独立ip所在网站的根目录建立一个子文件夹.

  例:我现在要在127.0.0.1这个ip下面再做一个站,原有的站是abcdabc.com

  现在我想再建一个abcd123.com的网站。

  于是我先在abcdabc.com的根目录建立一个123的文件夹,然后制作了一个.htaccess文件。

  directoryindexdefault.phpindex.htmindex.phpindex.htmldefault.htmdefault.htmlindex.shtmldefault.shtml

  rewriteengineon

  optionsall-indexes

  php_valueupload_max_filesize20m

  rewriteengineon

  rewritecond%{http_host}^(abcd)?123.com$

  rewritecond%{request_uri}!^/123/

  rewritecond%{request_filename}!-f

  rewritecond%{request_filename}!-d

  rewriterule^(.)$/123/$1

  rewritecond%{http_host}^(abcd)?123.com$

  rewriterule^(/)?$123/index.php[l]

  errordocument401/404.htm

  errordocument403/404.htm

  errordocument404/404.htm

  errordocument500/404.htm

  directoryindexdefault.phpindex.htmindex.phpindex.htmldefault.htmdefault.htmlindex.shtmldefault.shtml

  这个是定义默认首页的

  rewriteengineon

  optionsall-indexes

  php_valueupload_max_filesize20m

  这个是修改程序上传文件大小的

  rewriteengineon

  rewritecond%{http_host}^(abcd)?123.com$这个是域名

  rewritecond%{request_uri}!^/123/这个是目录设置

  rewritecond%{request_filename}!-f

  rewritecond%{request_filename}!-d

  rewriterule^(.)$/123/$1目录设置

  rewritecond%{http_host}^(abcd)?123.com$域名

  rewriterule^(/)?$123/index.php[l]默认访问的文件,可以修改成别的

  errordocument401/404.htm

  errordocument403/404.htm

  errordocument404/404.htm

  errordocument500/404.htm

  这些是错误文档定义。

  .htaccess文件很强大的,可以实现很多功能,甚至可以定义php参数,比如上传文件大小,php程序运行时间等等,只要善于发掘,就能够实现更多的功能。

  来自:abcdam82.com/houzan/archives/2311

  分享到搜狐微博