来看看:21个经常使用的apache .htaccess文件设置技能分享
经常看到有人问用什么版本的linux好,其实只要你认真学习无论什么版本都挺好的。ApacheWeb服务器能够经由过程.htaccess文件来操纵各类信息,这是一个目次级设置文件的默许称号,同意往中心化的Web服务器设置办理。可用来重写服务器的全局设置。该文件的目标就是为了同意独自目次的会见把持设置,比方暗码和内容会见。
1.定制目次的Index文件
代码以下:
DirectoryIndexindex.htmlindex.phpindex.htm
你可使用下面的设置来变动目次的默许页面,比方你将这个剧本放在foo目次,则用户哀求/foo/时分就会会见/foo/index.html。
2.自界说毛病页
代码以下:
ErrorDocument404errors/404.html
当用户会见页面报错时,比方页面找不到你但愿显现自界说的毛病页面,你能够经由过程这类办法来完成。大概是静态的页面:
代码以下:
ErrorDocument404/psych/cgi-bin/error/error?404
3.把持会见文件和目次的级别
.htaccess常常用来限定和回绝会见某个文件和目次,比方我们有一个includes文件夹,这里寄存一些剧本,我们不但愿用户间接会见这个文件夹,那末经由过程上面的剧本能够完成:
代码以下:
#noonegetsinhere!
denyfromall
上述剧本是回绝一切的会见,你也能够依据IP段来回绝:
#nonastycrackersinhere!
orderdeny,allow
denyfromall
allowfrom192.168.0.0/24
#thiswoulddothesamething..
#allowfrom192.168.0
一样平常这些办法是经由过程防火墙来处置,但在一个临盆情况中的服务器来讲,如许的调剂十分便利。
偶然候你只是想克制某个ip会见:
代码以下:
#someoneelsegivingtheruskiesabadname..
orderallow,deny
denyfrom83.222.23.219
allowfromall
4.修正情况变量
情况变量包括了服务器端CGI的一些扩大信息,可以使用SetEnv和UnSetEnv举行设置和作废设置.
代码以下:
SetEnvSITE_WEBMASTER"JackSprat"
SetEnvSITE_WEBMASTER_URImailto:Jack.Sprat@characterology.com
UnSetEnvREMOTE_ADDR
5.301重定向
假如你但愿某个页面跳转到新的页面:
代码以下:
Redirect301/old/file.htmlhttp://yourdomain.com/new/file.html
上面能够完成对全部路径的重定向:
代码以下:
RedirectMatch301/blog(.*)http://yourdomain.com/$1
6.经由过程.htaccess完成缓存战略
经由过程设置在扫瞄器上缓存静态文件能够提拔网站的功能:
代码以下:
#year
<FilesMatch".(ico|pdf|flv|jpg|jpeg|png|gif|swf|mp3|mp4)$">
HeadersetCache-Control"public"
HeadersetExpires"Thu,15Apr201020:00:00GMT"
HeaderunsetLast-Modified
</FilesMatch>
#2hours
<FilesMatch".(html|htm|xml|txt|xsl)$">
HeadersetCache-Control"max-age=7200,must-revalidate"
</FilesMatch>
<FilesMatch".(js|css)$">
SetOutputFilterDEFLATE
HeadersetExpires"Thu,15Apr201020:00:00GMT"
</FilesMatch>
7.利用GZIP对输入举行紧缩
在.htaccess中增加上面的代码能够将一切的css、js和html利用GZIP算法紧缩:
代码以下:
<IfModulemod_gzip.c>
mod_gzip_onYes
mod_gzip_dechunkYes
mod_gzip_item_includefile.(html?|txt|css|js|php|pl)$
mod_gzip_item_includehandler^cgi-script$
mod_gzip_item_includemime^text/.*
mod_gzip_item_includemime^application/x-javascript.*
mod_gzip_item_excludemime^image/.*
mod_gzip_item_excluderspheader^Content-Encoding:.*gzip.*
</IfModule>
利用下面代码的条件是启用mod_gzip模块,你可使用上面剧本来判别Web服务器是不是供应mod_deflate撑持:
代码以下:
<Location>
SetOutputFilterDEFLATE
SetEnvIfNoCaseRequest_URI
.(?:gif|jpe?g|png)$no-gzipdont-vary
SetEnvIfNoCaseRequest_URI
.(?:exe|t?gz|zip|gz2|sit|rar)$no-gzipdont-vary
</Location>
假如Web服务器不撑持mod_deflate,那末可以使用上面办法:
代码以下:
<FilesMatch".(txt|html|htm|php)">
php_valueoutput_handlerob_gzhandler
</FilesMatch>
8.强迫请求利用HTTPS会见
经由过程以下剧本能够强迫全部网站必需利用https体例会见:
代码以下:
RewriteEngineOn
RewriteCond%{HTTPS}!on
RewriteRule(.*)https://%{HTTP_HOST}%{REQUEST_URI}
9.URL重写
比方要将product.php?id=12重写为product-12.html
代码以下:
RewriteEngineon
RewriteRule^product-(+).html$product.php?id=$1
将product.php?id=12重写为product/ipod-nano/12.html
代码以下:
RewriteEngineon
RewriteRule^product/(+)/(+).html$product.php?id=$2
重定向没有www到有www的URL地点:
代码以下:
RewriteEngineOn
RewriteCond%{HTTP_HOST}^viralpatel.net$
RewriteRule(.*)http://www.viralpatel.net/$1
重写yoursite.com/user.php?username=xyz到yoursite.com/xyz
代码以下:
RewriteEngineOn
RewriteRule^(+)$user.php?username=$1
RewriteRule^(+)/$user.php?username=$1
重定向某个域名到一个public_html里新的子文件夹:
代码以下:
RewriteEngineOn
RewriteCond%{HTTP_HOST}^test.com$
RewriteCond%{HTTP_HOST}^www.test.com$
RewriteCond%{REQUEST_URI}!^/new/
RewriteRule(.*)/new/$1
10.制止列出目次文件
利用上面代码能够避免列表目次里的一切文件:
代码以下:
Options-Indexes
大概
代码以下:
IndexIgnore*
11.增加新的MIME-Types
MIME-types依附于文件的扩大名,未能被辨认的文件扩大名会当做文本数据传输
代码以下:
AddTypeapplication/x-endnote-connectionenz
AddTypeapplication/x-endnote-filterenf
AddTypeapplication/x-spss-savefilesav
12.防盗链
你不但愿他人网站援用你站内的图片、css等静态文件,也就是传说中的防盗链,可使用以下剧本:
代码以下:
RewriteCond%{HTTP_REFERER}!^$
RewriteCond%{REQUEST_URI}!^/(wp-login.php|wp-admin/|wp-content/plugins/|wp-includes/).*
RewriteCond%{HTTP_REFERER}!^http://www.askapache.com.*$
RewriteRule.(ico|pdf|flv|jpg|jpeg|mp3|mpg|mp4|mov|wav|wmv|png|gif|swf|css|js)$-
13.指定上传文件的巨细限定,合用于PHP
代码以下:
php_valueupload_max_filesize20M
php_valuepost_max_size20M
php_valuemax_execution_time200
php_valuemax_input_time200
上述剧本中,经由过程四个参数来设置上传文件的限定,第一个参数是文件的巨细,第二个是POST数据的巨细,第三个是传输的工夫(单元秒),最初一个是剖析上传数据最多消费的工夫(单元秒)
14.克制剧本实行
代码以下:
Options-ExecCGI
AddHandlercgi-script.php.pl.py.jsp.asp.htm.shtml.sh.cgi
15.修正字符集和言语头
代码以下:
AddDefaultCharsetUTF-8
DefaultLanguageen-US
16.设置服务器时区(GMT)
代码以下:
SetEnvTZAmerica/Indianapolis
17.强迫“FileSaveAs”提醒
代码以下:
AddTypeapplication/octet-stream.avi.mpg.mov.pdf.xls.mp4
18.回护单个文件
一般情形下.htaccess可用于限定全部目次的会见,但也能够只限定某个文件:
代码以下:
<Filesquiz.html>
orderdeny,allow
denyfromall
AuthTypeBasic
AuthName"CharacterologyStudentAuthcate"
AuthLDAPon
AuthLDAPServerldap://directory.characterology.com/
AuthLDAPBase"ou=Student,o=CharacterologyUniversity,c=au"
requirevalid-user
satisfyany
</Files>
19.设置Cookie
经由过程情况变量来设置Cookie
代码以下:
HeadersetSet-Cookie"language=%{lang}e;path=/;"env=lang
基于哀求设置Cookie,该代码发送Set-Cookie头用于设置Cookie值为第二个括号里的婚配项
代码以下:
RewriteEngineOn
RewriteBase/
RewriteRule^(.*)(de|es|fr|it|ja|ru|en)/$-
20.设置自界说的呼应Headers
代码以下:
HeadersetP3P"policyref="http://www.askapache.com/w3c/p3p.xml""
HeadersetX-Pingback"http://www.askapache.com/xmlrpc.php"
HeadersetContent-Language"en-US"
HeadersetVary"Accept-Encoding"
21.依据User-Agent来制止哀求
代码以下:
SetEnvIfNoCase^User-Agent$.*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures)HTTP_SAFE_BADBOT
SetEnvIfNoCase^User-Agent$.*(libwww-perl|aesop_com_spiderman)HTTP_SAFE_BADBOT
Denyfromenv=HTTP_SAFE_BADBOT
如果你让他去用linux搭建一个web服务器,做一个linux网关,他就什么都不会了.他们把时间都浪费在了版本的转换上了. 在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。 说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。? 学习Linux系统在服务中的配置方法及使用方法。Linux在服务器中应用相当广,应对常用的apache,samba,ftp等服务器基本配置清楚了解。[重点,应巩固学习] 说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。? 以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。 Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。 尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。 Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
页:
[1]