时间: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
分享到搜狐微博