adicom
Meyu Customer
UID 4694
精华
1
积分 196
帖子 107
体力 102
威望 10
贡献 0
阅读权限 80
注册 2007-3-19
状态 离线
|
[广告]: 新手解疑1:FTP空间各文件目录的作用
PS:全文系转帖 梦游时光互联~ Q7IjV
P:q)|8q%T!k"n7A5D1.1 什么是.htaccess文件梦游时光互联%f6ip_ p{pJ
从本指南中,你将可以学习到有关.htaccess文件及其功能的知识,并用以优化你的网站。尽管.htaccess只是一个文件,但它可以更改服务器的设置,允许你做许多不同的事情,最流行的功能是您可以创建自定义的“404 error”页面。.htaccess 并不难于使用,归根结底,它只是在一个text文档中添加几条简单的指令而已。
Sj9Ds:y4Dc梦游时光互联%k)ix}1Z+C:X,|^*OB
首先你要判断主机支持它
5_@q,pj&`梦游时光互联web.meyu.net.g oA!rSm;y:{S
这可能很难用简单的答案来回答。许多主机支持.htaccess,但实际上并不会特别声明,许多其他类型的主机有能力但并不允许他们的用户使用. htaccess。一般来说,如果你的主机使用Unix或Linux系统,或任何版本的Apache网络服务器,从理论上都是支持.htaccess的,尽管你的主机服务商可能不允许你使用它。-o&dAw q\ P
y
SK"F`t&b2q梦游时光互联判断你的主机是否允许.htaccess,一个标志很好的是它是否支持文件夹密码保护。为达到此功能,主机服务商需要使用.htaccess(当然,少数情况下他们虽提供密码保护功能,但却并不允许你使用.htaccess)。如果你不确定自己的主机是否支持.htaccess,最好的办法是上传你自己的.htaccess文件看看是否有用,或者直接发送e-mail向你的主机服务商咨询。C)h3l;R5@ \8y
g
f{6~%~,F;Z~:?2zo1F2v梦游时光互联Apache系统中的.htaccess文件(或者”分布式配置文件”提供了针对目录改变配置的方法,即,在一个特定的文档目录中放置一个包含一个或多个指令的文件,以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。
)quh"cL,qvH梦游时光互联
q5P^Z1ym6V子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。
h[p%V~{
xYra9r$Z&d.i$d.htaccess必须以ASCII模式上传,最好将其权限设置为644。
KXq6g0i}8b1U
q7U5Nv$m%|q-O p.htaccess可以做大量的事情,包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件。d,F$u
I:rgM.s
Fd~QFl|O2M*m
!P5|Xa4|uweb.meyu.net.1.2 如何创建.httaccess文件 ,Z*AbN2`%B;Y
创建.htaccess文件也许会给你带来一些困难。写文件很容易,你只需要在文字编缉器(例如:写字板)里写下适当的代码。真正困难的可能是文件的保存,因为.htaccess是一个古怪的文件名(它事实上没有文件名,只有一个由8个字母组成的扩展名),而在一些系统(如windows 3.1)中无法接受这样的文件名。在大多数的操作系统中,你需要做的是将文档保存成名为:“.htaccess” (包括引号)。如果这也不行,你需要将其先命名为其它名字(例如htaccess.txt),再将其上传到服务器上,之后直接使用FTP软件来重命名。@"vr&]%s3N
~
&Z|*qEem:D警告
F;rk"xcM9km+X?
}|c4p&Kh+Eweb.meyu.net.在使用.htaccess之前,我必须给你一些警告。虽然在服务器上使用.htaccess绝对不太可能给你带来任何麻烦(如果有些东西错了,它只是没效用罢了),但如果你使用Microsoft FrontPage Extensions,就必须特别小心。因为FrontPage Extensions本身使用了.htaccess,因此你不能编辑它并加入你自己的信息。如果确实有这方面的需要(并不推荐,但是可能),你应该先从服务器上下载.htaccess文档(如果存在),之后在前面加上你的代码。8Wne1vC1h.~kf(F
Nnx|)Iw-v.Y2|.httacces文件的配置
9WE ex:_Sv
"d'x$x-[1ifqH5]P
W$C$W
fg
u4q2.1.配置.htaccess 自定义错误页 梦游时光互联e-l1W1H`:]
我要介绍的.htaccess的第一个应用是自定义错误页面,这将使你可以拥有自己的、个性化的错误页面(例如找不到文件时),而不是你的服务商提供的错误页或没有任何页面。这会让你的网站在出错的时候看上去更专业。你还可以利用脚本程序在发生错误的时候通知你(例如我使用Free Webmaster Help的PHP脚本程序,当找不到页面的时候自动e-mail给我)。web.meyu.net.` ]C2t8wY9j&H
4g%t
F!z,o6]"XzUw你所知道的任何页面错误代码(像404找不到页面),都可以通过在.htaccess文件里加入下面的文字将其变成自定义页面:
G2ceJ'`m k]7c.W
T1O8E+e,x EW ErrorDocument errornumber /file.html
^8V\K3q;h.h
4r0W*TF}0Y&G举例来说,如果我的根目录下有一个nofound.html文件,我想使用它作为404 error的页面:
4\.P @D:V
kV
s v;?-r"m`(Jr梦游时光互联 ErrorDocument 404 /notfound.html
Ds6[x`-C1gt
BK|alu'n/Wweb.meyu.net.如果文件不在网站的根目录下,你只需要把路径设置为:sA"?'Q;Wh+o
QYZ
@R:A5{m ErrorDocument 500 /errorpages/500.html*B1_FOruu
B]9S#e%F
D
Gk%h梦游时光互联以下是一些最常用的错误:+D\vPN
B!Z
XH5F
FcVB"d CF
常用的客户端请求错误返回代码:
jQ.TYX"XXq'|web.meyu.net.Y:sk"Q:] j'o.y
400 - Bad request 错误请求web.meyu.net._;g Q ^8ex sr:q
401 Authorization Required需要验证梦游时光互联^3@AV&S
IP
403 Forbidden禁止#a ?,R2u%ke
404 Not Found找不到页面web.meyu.net. z q3AUpg7PD
405 Method Not Allowed
4[}$a|g408 Request Timed Outweb.meyu.net. S
b*C,k/f9O
411 Content Length Required梦游时光互联9b2SAOlB0`
412 Precondition FailedL8IC*{ E0UM;mZ
413 Request Entity Too LongTG*p-@8X
rftKJ
414 Request URI Too Long梦游时光互联]!kzot:H bzf
415 Unsupported Media Type
^7b$Hu*_U,XVE+b"S0N(dIgziy8R
常见的服务器错误返回代码:
\h4?LB:UU9](s.Oe
DR
500 Internal Server Error内部服务器错误
T8P*\cS-h'Fr2d梦游时光互联
m~GV:Cweb.meyu.net.接下来,你要做的只是创建一个错误发生时显示的文件,然后把它们和.htaccess一起上传。
1pD9f
TU'M(Ubj
#`Q7i-M8gH Bqi+l用户可以利用.htaccess指定自己事先制作好的错误提醒页面。一般情况下,人们可以专门设立一个目录,例如errors放置这些页面。然后再.htaccess中,加入如下的指令:
*H*K8SD4K)j
$P.I7gi]s5g2s%l ErrorDocument 404 /errors/notfound.html
;|
wK?4H8rweb.meyu.net. ErrorDocument 500 /errors/internalerror.html
Z
b!c@4F!BDEweb.meyu.net.
*T+u/f,h4x)kM+@一条指令一行。上述第一条指令的意思是对于404,也就是没有找到所需要的文档的时候得显示页面为/errors目录下的notfound.html页面。不难看出语法格式为:梦游时光互联$EV+c_#lw"FH%c
M,Y&e2^Gfh7v ErrorDocument 错误代码 /目录名/文件名.扩展名
,k9F-U0W j梦游时光互联梦游时光互联*`V9S!p3n/i/Y4xA
如果所需要提示的信息很少的话,不必专门制作页面,直接在指令中使用HTML号了,例如下面这个例子:yc H'PmY^Hj$U:Z
"r VbqJ'fweb.meyu.net. ErrorDocument 401 “你没有权限访问该页面,请放弃!”梦游时光互联:c"SDH,}hjaj
D!k`0^(EUweb.meyu.net.'u$]{3`]%V1d6[+G
2.2.配置.htaccess 停示显示目录列表
A)?)q3MTJC'Z有些时候,由于某种原因,你的目录里没有index文件,这意味着当有人在浏览器地址栏键入了该目录的路径,该目录下所有的文件都会显示出来,这会给你的网站留下安全隐患。
bF^+[u*C"E`~(I"t[{.sB
为避免这种情况(而不必创建一堆的新index文件),你可以在你的.htaccess文档中键入以下命令,用以阻止目录列表的显示: Options -Indexes
H4dAf*`v&jh
"q|vv)} H'r
D|
GRyE/k
2.3.配置.htaccess 阻止/允许特定的IP地址G.C}9@;g
C
某些情况下,你可能只想允许某些特定IP的用户可以访问你的网站(例如:只允许使用特定ISP的用户进入某个目录),或者想封禁某些特定的IP地址(例如:将低级用户隔离于你的信息版面外)。当然,这只在你知道你想拦截的IP地址时才有用,然而现在网上的大多数用户都使用动态IP地址,所以这并不是限制使用的常用方法。梦游时光互联 ap8}
L6i)wSiT#[m2^
svQ;Ve6{
你可以使用以下命令封禁一个IP地址:;qBqk/|+~i
yaP,A7o9x,N qF deny from 000.000.000.000
mK"nG:J(m*q;B!AQ
2_}Bu'iB[7~Oweb.meyu.net.这里的000.000.000.000是被封禁的IP地址,如果你只指明了其中的几个,则可以封禁整个网段的地址。如你输入210.10.56.,则将封禁210.10.56.0~210.10.56.255的所有IP地址。rL&p^a
pg;FRFBGweb.meyu.net.你可以使用以下命令允许一个IP地址访问网站:
8dy^/ZJ\:du
9[Y4Vv {m3`m梦游时光互联 allow from 000.000.000.000
u&dn)m*t#Z4H梦游时光互联9n.Z'f)l2v
被允许的IP地址则为000.000.000.000,你可以象封禁IP地址一样封禁整个网段。xnxI ?(^7I
4RY0cI|2uUweb.meyu.net.如果你想阻止所有人访问该目录,则可以使用:5NG)|2qh
tgv?5N9u%v^?-s4N
deny from all
&Z ?x{:uYC
8wl Q4o{d不过这并不影响脚本程序使用这个目录下的文档。
Wv'iJ)~
;z
zd;Ru/N{4j!w)]f
n1b(Z@:|
2.4.配置.htaccess 替换index文件梦游时光互联+w|
tdMC|!C
改变缺省的首页文件梦游时光互联XJP;N)|U
:E
L~,BKQW一般情况下缺省的首页文件名有default、index等。不过,有些时候目录中没有缺省文件,而是某个特定的文件名,比如在w3sky中是 w3sky.PHP。这种情况下,要用户记住文件名来访问很麻烦。在.htaccess中可以轻易的设置新的缺省文件名:
WNlz']^'b"_L梦游时光互联
)^~
n8cC/Mpweb.meyu.net. DirectoryIndex 新的缺省文件名;P
[j9@Y%{!d'w
2H)f:M5qj"D TJ1B VZ
也可以列出多个,顺序表明它们之间的优先级别,例如:
mui"_^web.meyu.net.0K8y}_9kk-DD
DirectoryIndex filename.html index.cgi index.pl default.htm
_%R2IB3q,[~3s梦游时光互联
u6qE7Ev/[也许你不想一直使用index.htm或index.html作为目录的索引文件。举例来说,如果你的站点使用PHP文件,你可能会想使用 index.PHP来作为该目录的索引文档。当然也不必局限于“index”文档,如果你愿意,使用.htaccess你甚至能够设置 foofoo.balh来作为你的索引文档!$W
O
Th;WQ5n(U
b7wCV9fxlN
这些互为替换的索引文件可以排成一个列表,服务器会从左至右进行寻找,检查哪个文档在真实的目录中存在。如果一个也找不到,它将会把目录列表显示出来(除非你已经关闭了显示目录文件列表)。
VrcI}&S(^web.meyu.net.OF.r4rs
p
DirectoryIndex index.PHP index.PHP3 messagebrd.pl index.html index.htm#[mN/bl8M
梦游时光互联{v"X9W,h0VC%_e
)k;wi:jnbOzy^
2.5.配置.htaccess 重定向页面S&C}fwR V6]d
.htaccess最有用的功能之一就是将请求重定向到同站内或站外的不同文档。这在你改变了一个文件名称,但仍然想让用户用旧地址访问到它时,变的极为有用。另一个应用(我发现的很有用的)是重定向到一个长URL,例如在我的时事通讯中,我可以使用一个很简短的URL来指向我的会员链接。以下是一个重定向文件的例子:梦游时光互联'Eg7Z1^|/hyKu/|)A
T1em2rFN qe
Redirect /location/from/root/file.extP
{d+x4^8@i
UC'C FA
http://www.w3sky.com/new/file/123.html
fl [6l)|,g0m;yweb.meyu.net.
O'^ QS(H%]|4q)S-v梦游时光互联上述例子中,访问在root目录下的名为oldfile.html可以键入:4@Jp,a7|P1S
|4Q.L
G
-tq[_eG
/oldfile.html1{wb+| C4V
H.pn\.De F@4uU访问一个旧次级目录中的文件可以键入:梦游时光互联"CW+G!lFz~-y G|
3C!aMB4dK2iZ1B
/old/oldfile.html
Xvq3X9q3b `web.meyu.net.#qr(zw4C;l#R
q
你也可以使用.htaccess重定向整个网站的目录。假如你的网站上有一个名为olddirectory的目录,并且你已经在一个新网站 http://www.w3sky.com/newdirectory/上建立了与上相同的文档,你可以将旧目录下所有的文件做一次重定向而不必一一声明:
${2N
S
@^g6p梦游时光互联~ R
F
c'vO2I9MaCL
Redirect /olddirectory http://www.w3sky.com/newdirectory
hg[I`1kl-h
:xdC4X3?DY!uC6I这样,任何指向到站点中/olddirectory目录的请求都将被重新指向新的站点,包括附加的额外URL信息。例如有人键入:
6T-^
t&o_c(o2S2?d&BY S1`i
Y0NJnY&M2kh8[web.meyu.net.
V*W,TD.J`b`请求将被重定向到:
P"D E+yZ-bm0d2z
%Gl!q0jx(?0pweb.meyu.net.
6u0MA'}
Wd,A^
%}+s.~+L@lx~hS如果正确使用,此功能将极其强大。web.meyu.net.U|Suj,y"P
jF1H5pF
我们可能对网站进行重新规划,将文档进行了迁移,或者更改了目录。这时候,来自搜索引擎或者其他网站链接过来的访问就可能出错。这种情况下,可以通过如下指令来完成旧的URL自动转向到新的地址:S/s!|xz-k
web.meyu.net.phrD'Ur.]
Redirect /旧目录/旧文档名 新文档的地址
opE$~4L"cC
q-J(L)G Y3b
rweb.meyu.net.或者整个目录的转向:web.meyu.net.H2E-aK8MK L
!S+DT%}u@_C jB(t
Redirect 旧目录 新目录 zXDU3D4~ qV5JIGI"`
TyW~m:n:c梦游时光互联 w$Sq1w+eqBSa$x
%M4E$i:h/c{@+NI梦游时光互联,j'o/T
gp
超过字节限制了 下续
|
今夜天寒 不宜私奔 适合梦游
|
|