仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 447|回复: 8
打印 上一主题 下一主题

[其他Linux] 来看看:21个经常使用的apache .htaccess文件设置技能分享

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 16:13:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
经常看到有人问用什么版本的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&#63;|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
.(&#63;:gif|jpe&#63;g|png)$no-gzipdont-vary
SetEnvIfNoCaseRequest_URI
.(&#63;:exe|t&#63;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&#63;id=12重写为product-12.html
代码以下:
RewriteEngineon
RewriteRule^product-([0-9]+).html$product.php&#63;id=$1

将product.php&#63;id=12重写为product/ipod-nano/12.html
代码以下:
RewriteEngineon
RewriteRule^product/([a-zA-Z0-9_-]+)/([0-9]+).html$product.php&#63;id=$2

重定向没有www到有www的URL地点:
代码以下:
RewriteEngineOn
RewriteCond%{HTTP_HOST}^viralpatel.net$
RewriteRule(.*)http://www.viralpatel.net/$1[R=301,L]

重写yoursite.com/user.php&#63;username=xyz到yoursite.com/xyz
代码以下:
RewriteEngineOn
RewriteRule^([a-zA-Z0-9_-]+)$user.php&#63;username=$1
RewriteRule^([a-zA-Z0-9_-]+)/$user.php&#63;username=$1

重定向某个域名到一个public_html里新的子文件夹:
代码以下:
RewriteEngineOn
RewriteCond%{HTTP_HOST}^test.com$[OR]
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/).*[NC]
RewriteCond%{HTTP_REFERER}!^http://www.askapache.com.*$[NC]
RewriteRule.(ico|pdf|flv|jpg|jpeg|mp3|mpg|mp4|mov|wav|wmv|png|gif|swf|css|js)$-[F,NS,L]

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)/$-[co=lang:$2:.yourserver.com:7200:/]

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网关,他就什么都不会了.他们把时间都浪费在了版本的转换上了.
老尸 该用户已被删除
沙发
发表于 2015-1-18 16:34:21 来自手机 | 只看该作者
在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。
admin 该用户已被删除
板凳
发表于 2015-1-25 17:48:16 | 只看该作者
说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。?
莫相离 该用户已被删除
地板
发表于 2015-2-3 12:19:02 | 只看该作者
学习Linux系统在服务中的配置方法及使用方法。Linux在服务器中应用相当广,应对常用的apache,samba,ftp等服务器基本配置清楚了解。[重点,应巩固学习]
5#
发表于 2015-2-8 22:48:21 | 只看该作者
说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。?
第二个灵魂 该用户已被删除
6#
发表于 2015-2-26 13:51:32 | 只看该作者
以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。
乐观 该用户已被删除
7#
发表于 2015-3-8 15:29:58 | 只看该作者
Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。
冷月葬花魂 该用户已被删除
8#
发表于 2015-3-16 03:34:35 | 只看该作者
尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。
变相怪杰 该用户已被删除
9#
发表于 2015-3-22 19:51:38 | 只看该作者
Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 22:25

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表