|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
就是管理员可以编辑,删除,回复 等功能,。加入管理员功能要加入登陆系统,慢慢你会想在线添加管理员,慢慢你会让自己的作品更漂亮些,慢慢1个完整的留言板就会出来了, 由于在一个国外的空间的根文件夹下看到这个.htaccess,弄不懂是干甚么的,在后进服装论坛找到一篇文章,先转过去放着,今后再渐渐研讨,嘿嘿..
Apache指南: .htaccess文件
.htaccess文件供应了针对目次改动设置装备摆设的办法。
* .htaccess文件
* 任务道理和利用办法
* 利用.htaccess文件的场所
* 指令的失效
* 认证举例
* 办事器端包括举例
* CGI举例
* 疑问解答
top
.htaccess文件
相干模块 相干指令
* core
* mod_auth
* mod_cgi
* mod_include
* mod_mime
* AccessFileName
* AllowOverride
* Options
* AddHandler
* SetHandler
* AuthType
* AuthName
* AuthUserFile
* AuthGroupFile
* Require
top
任务道理和利用办法
.htaccess文件(或"散布式设置装备摆设文件"供应了针对目次改动设置装备摆设的办法, 即,在一个特定的文档目次中放置一个包括一个或多个指令的文件, 以感化于此目次及其一切子目次。
申明:假如需求利用.htaccess之外的其他文件名,可以用AccessFileName指令来改动。 例如,需求利用.config,则可以在办事器设置装备摆设文件中按以下办法设置装备摆设:
AccessFileName .config
答应放在这些文件中的指令取决于AllowOverride指令, 此指令按种别决意了.htaccess文件中哪些指令才是无效的。 假如一个指令答应放在.htaccess文件中,则,在本手册的申明中,此指令会有一个掩盖段, 个中申明了为使此指令失效而必需在AllowOverride指令中设置的值。
例如,本手册对AddDefaultCharset指令的申明标明了, 此指令可以用于.htaccess文件(见 Context一行),而Override一行是"FileInfo", 那末为使.htaccess中的此指令无效,则最少要设置"AllowOverride FileInfo"。
例子:
Context: server config, virtual host, directory, .htaccess
Override: FileInfo
假如不克不及肯定一个特定的指令是不是答应用于.htaccess文件, 可以查阅手册中对指令的申明,看在Context(“高低文”)行中是不是有".htaccess."。
top
利用.htaccess文件的场所
普通情形下,不该该利用.htaccess文件,除非你对主办事器设置装备摆设文件没有存取权限。 有一种很罕见的曲解,以为用户认证只能经由过程.htaccess文件完成,但并非如许, 把用户认证写在主办事器设置装备摆设中是完整可行的,并且是一种很好的办法。
在内容供应者需求针对目次改动办事器的设置装备摆设而对办事器体系没有root权限时, 则应当利用.htaccess文件。假如办事器办理员不肯意频仍修正设置装备摆设, 则可以答应用户经由过程.htaccess文件本人修正设置装备摆设,特别是ISP在一个机械上 宿主多个用户站点,而又但愿用户可以本人改动设置装备摆设的情形下。
固然如斯,普通都应当尽量地防止利用.htaccess文件。 任何但愿放在.htaccess文件中的设置装备摆设,都可以放在主办事器的<Directory>段中,并且更高效。
防止利用.htaccess文件有两个次要缘由。
起首是功能。 假如AllowOverride答应利用.htaccess文件, 则,Apache需求在每一个目次中查找.htaccess文件,因而,不管是不是真正用到, 答应利用.htaccess文件城市招致功能的下落。 别的,每次恳求一个页面时,都需求读取.htaccess文件。
还有,Apache必需在一切更初级的目次中查找.htaccess文件, 使一切无效的指令都起感化(拜见how directives are applied.),所以, 假如有对/www/htdocs/example中页面的恳求,Apache必需查找以下文件:
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
并且,对此目次之外的每一个文件会见,还有4个附加的文件体系会见,即便这些文件都不存在。 (注重,这能够仅仅产生在 / 答应利用.htaccess文件的情形下,固然这类情形其实不多。)
其次是平安。 如斯,会答应用户修正办事器的设置装备摆设,能够会招致未加限制的修正,请仔细思索是不是赐与用户如许的特权。 然而,假如赐与用户较少的特权而不克不及知足其需求,则会带来额定的手艺撑持恳求, 所以,必需明白地告知用户已赐与他们的权限,申明AllowOverride设置的值, 并引诱他们参阅响应的申明,以避免往后很多费事。
注重,在/www/htdocs/example目次下.htaccess文件中放置指令,与, 在主办事器设置装备摆设文件中<Directory /www/htdocs/example>段中放置不异指令, 是等效的。:
/www/htdocs/example中的.htaccess:
/www/htdocs/example中.htaccess文件的内容
AddType text/example .exm
httpd.conf文件中的段
<Directory /www/htdocs/example>
AddType text/example .exm
</Directory>
然而,把这个设置装备摆设放置在办事器设置装备摆设文件中则加倍高效,由于只需求在Apache启动时读取一次, 而不是在有文件恳求时每次都读取。
将AllowOverride设置为"none"可以完整制止利用.htaccess文件。
AllowOverride None
top
指令的失效
.htaccess文件中的设置装备摆设指令感化于.htaccess文件地点的目次及其一切子目次, 然而,很主要需求记住的是,其更初级的目次也能够会有.htaccess文件, 而指令是按查找按次顺次失效,所以, 一个特定目次下的.htaccess文件中的指令能够会掩盖其更初级目次中的 .htaccess文件的指令,即, 子目次中的指令会掩盖更初级目次或主办事器设置装备摆设文件中的指令。
例如:
目次/www/htdocs/example1中的.htaccess文件有以下内容:
Options +ExecCGI
(注重: 必需设置"AllowOverride Options"以答应在.htaccess文件中利用 "Options"指令。)
在目次/www/htdocs/example1/example2中的.htaccess文件有以下内容:
Options Includes
因为第二个.htaccess文件的存在,/www/htdocs/example1/example2中 的CGI履行是不答应的,而只答应Options Includes,它完整掩盖了之前的设置。
top
认证举例
假如你为了晓得若何认证,直接从这里入手下手看,有很主要的一点需求注重,有一种罕见的曲解, 以为完成暗码认证必需要利用.htaccess文件,其实不是如许。 把认证指令放在主办事器设置装备摆设文件的<Directory>段中,是一个更好的办法, 而.htaccess文件应当仅仅用于无权会见主办事器设置装备摆设文件的时分。 拜见上述的利用.htaccess文件的场所。
有此声明在先,假如你依然需求利用.htaccess文件,请看以下申明。
必需设置"AllowOverride AuthConfig"以答应这些指令失效
.htaccess文件的内容:
AuthType Basic
AuthName "Password Required"
AuthUserFile /www/passwords/password.file
AuthGroupFile /www/passwords/group.file
Require Group admins
注重,必需设置AllowOverride AuthConfig以答应这些指令失效
更具体的有关身份辨认和认证的申明,请拜见authentication tutorial。
top
办事器端包括举例
.htaccess文件的另外一个罕见用处是答应一个特定目次的办事器端包括(Server Side Includes), 可以在需求的目次中放置.htaccess文件,并以下设置装备摆设:
Options +Includes
AddType text/html shtml
AddHandler server-parsed shtml
注重,必需同时设置AllowOverride Options和 AllowOverride FileInfo使这些指令失效。
更具体的有关办事器端包括的申明,请拜见SSI tutorial。
top
CGI举例
最初,可以经由过程.htaccess文件答应在特定目次中履行CGI法式,需按以下设置装备摆设:
Options +ExecCGI
AddHandler cgi-script cgi pl
别的,以下,可使给定目次下一切文件被视为CGI法式:
Options +ExecCGI
SetHandler cgi-script
注重,必需设置AllowOverride Options使这些指令失效。
更具体的有关CGI编程和设置装备摆设的申明,请拜见CGI tutorial。
top
疑问解答
假如在.htaccess文件中写入了设置装备摆设指令但不起感化,能够有多种缘由。
最多见的缘由是,AllowOverride指令没有被准确设置, 必需确保没有对此文件区域设置AllowOverride None。有一个很好的测试办法,即, 在.htaccess文件随意增添点没用的内容,假如办事器没有前往了一个毛病动静, 那末几近可以判定设置了AllowOverride None。
在会见文档时,假如收到办事器的失足动静,应当反省Apache的失足日记, 可以晓得.htaccess文件中哪些指令是不答应利用的,也能够会发明需求改正的语法毛病。
.htaccess文件利用手册
- .htaccess文件(或"散布式设置装备摆设文件"供应了针对目次改动设置装备摆设的办法, 即,在一个特定的文档目次中放置一个包括一个或多个指令的文件,以感化于此目次及其一切子目次。作为用户,所能利用的号令遭到限制。办理员可以经由过程Apache的AllowOverride指令来设置。
- 子目次中的指令会掩盖更初级目次或主办事器设置装备摆设文件中的指令。
- .htaccess必需以ASCII形式上传,最好将其权限设置为644。
毛病文档的定位
经常使用的客户端恳求毛病前往代码:
401 Authorization Required
403 Forbidden
404 Not Found
405 Method Not Allowed
408 Request Timed Out
411 Content Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type
罕见的办事器毛病前往代码:
500 Internal Server Error
用户可以使用.htaccess指定本人事前制造好的毛病提示页面。普通情形下,人们可以专门设立一个目次,例如errors放置这些页面。然后再.htaccess中,到场以下的指令:
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/internalerror.html
一条指令一行。上述第一条指令的意思是关于404,也就是没有找到所需求的文档的时分得显示页面为/errors目次下的notfound.html页面。不好看出语法格局为:
ErrorDocument 毛病代码 /目次名/文件名.扩大名
假如所需求提醒的信息很少的话,不用专门制造页面,直接在指令中利用HTML号了,例以下面这个例子:
ErrorDocument 401 "<body bgcolor=#ffffff><h1>你没有权限会见该页面,请保持!</h1></body>"
文档会见的暗码回护
要使用.htaccess对某个目次下的文档设定会见用户和对应的暗码,起首要做的是生成一个.htpasswd的文本文档,例如:
zheng:y4E7Ep8e7EYV
这里暗码经由加密,用户可以本人找些东西将暗码加密成.htaccess撑持的编码。该文档最好不要放在www目次下,建议放在www根目次文档以外,如许更加平安些。
有了受权用户文档,可以在.htaccess中到场以下指令了:
AuthUserFile .htpasswd的办事器目次
AuthGroupFile /dev/null (需求受权会见的目次)
AuthName EnterPassword
AuthType Basic (受权类型)
require user wsabstract (答应会见的用户,假如但愿表中一切用户都答应,可使用 require valid-user)
注,括号局部为进修时分本人添加的正文
回绝来自某个IP的会见
假如我不想某个当局部分会见到我的站点的内容,那可以经由过程.htaccess中到场该部分的IP而将它们回绝在外。
例如:
order allow,deny
deny from 210.10.56.32
deny from 219.5.45.
allow from all
第二行回绝某个IP,第三行回绝某个IP段,也就是219.5.45.0~219.2.45.255
想要回绝一切人?用deny from all好了。不止用IP,也能够用域名来设定。
回护.htaccess文档
在利用.htaccess来设置目次的暗码回护时,它包括了暗码文件的途径。从平安思索,有需要把.htaccess也回护起来,不让他人看到个中的内容。固然可以用其他体例做到这点,好比文档的权限。不外,.htaccess自己也能做到,只需到场以下的指令:
<Files .htaccess>
order allow,deny
deny from all
</Files>
URL转向
咱们能够对网站停止从头计划,将文档停止了迁徙,或更改了目次。这时候候,来自搜刮引擎或其他网站链接过去的会见便可能失足。这类情形下,可以经由过程以下指令来完成旧的URL主动转向到新的地址:
Redirect /旧目次/旧文档名 新文档的地址
或全部目次的转向:
Redirect 旧目次 新目次
改动缺省的首页文件
普通情形下缺省的首页文件名有default、index等。不外,有些时分目次中没出缺省文件,而是某个特定的文件名,好比在pmwiki中是pmwiki.php。这类情形下,要用户记住文件名来会见很费事。在.htaccess中可以等闲的设置新的缺省文件名:
DirectoryIndex 新的缺省文件名
也能够列出多个,按次标明它们之间的优先级别,例如:
DirectoryIndex filename.html index.cgi index.pl default.htm
避免盗链
假如不喜好他人在他们的网页上毗连本人的图片、文档的话,也能够经由过程htaccess的指令来做到。
所需求的指令以下:
RewriteEngine on
RewriteCond % !^$
RewriteCond % !^http://(www\.)?webjx.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ - [F]
假如感觉让他人的页面开个天窗欠好看,那可以用一张图片来取代:
RewriteEngine on
RewriteCond % !^$
RewriteCond % !^http://(www\.)?webjx.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.webjx.com/替换图片文件名 [R,L]
- .htaccess文件(或"散布式设置装备摆设文件"供应了针对目次改动设置装备摆设的办法, 即,在一个特定的文档目次中放置一个包括一个或多个指令的文件, 以感化于此目次及其一切子目次。作为用户,所能利用的号令遭到限制。办理员可以经由过程Apache的AllowOverride指令来设置。
- 子目次中的指令会掩盖更初级目次或主办事器设置装备摆设文件中的指令。
- .htaccess必需以ASCII形式上传,最好将其权限设置为644。
毛病文档的定位
经常使用的客户端恳求毛病前往代码:
401 Authorization Required
403 Forbidden
404 Not Found
405 Method Not Allowed
408 Request Timed Out
411 Content Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type
罕见的办事器毛病前往代码:
500 Internal Server Error
用户可以使用.htaccess指定本人事前制造好的毛病提示页面。普通情形下,人们可以专门设立一个目次,例如errors放置这些页面。然后再.htaccess中,到场以下的指令:
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/internalerror.html
一条指令一行。上述第一条指令的意思是关于404,也就是没有找到所需求的文档的时分得显示页面为/errors目次下的notfound.html页面。不好看出语法格局为:
ErrorDocument 毛病代码 /目次名/文件名.扩大名
假如所需求提醒的信息很少的话,不用专门制造页面,直接在指令中利用HTML号了,例以下面这个例子:
ErrorDocument 401 "<body bgcolor=#ffffff><h1>你没有权限会见该页面,请保持!</h1></body>"
文档会见的暗码回护
要使用.htaccess对某个目次下的文档设定会见用户和对应的暗码,起首要做的是生成一个.htpasswd的文本文档,例如:
zheng:y4E7Ep8e7EYV
这里暗码经由加密,用户可以本人找些东西将暗码加密成.htaccess撑持的编码。该文档最好不要放在www目次下,建议放在www根目次文档以外,如许更加平安些。
有了受权用户文档,可以在.htaccess中到场以下指令了:
AuthUserFile .htpasswd的办事器目次
AuthGroupFile /dev/null (需求受权会见的目次)
AuthName EnterPassword
AuthType Basic (受权类型)
require user wsabstract (答应会见的用户,假如但愿表中一切用户都答应,可使用 require valid-user)
注,括号局部为进修时分本人添加的正文
回绝来自某个IP的会见
假如我不想某个当局部分会见到我的站点的内容,那可以经由过程.htaccess中到场该部分的IP而将它们回绝在外。
例如:
order allow,deny
deny from 210.10.56.32
deny from 219.5.45.
allow from all
第二行回绝某个IP,第三行回绝某个IP段,也就是219.5.45.0~219.2.45.255
想要回绝一切人?用deny from all好了。不止用IP,也能够用域名来设定。
回护.htaccess文档
在利用.htaccess来设置目次的暗码回护时,它包括了暗码文件的途径。从平安思索,有需要把.htaccess也回护起来,不让他人看到个中的内容。固然可以用其他体例做到这点,好比文档的权限。不外,.htaccess自己也能做到,只需到场以下的指令:
<Files .htaccess>
order allow,deny
deny from all
</Files>
URL转向
咱们能够对网站停止从头计划,将文档停止了迁徙,或更改了目次。这时候候,来自搜刮引擎或其他网站链接过去的会见便可能失足。这类情形下,可以经由过程以下指令来完成旧的URL主动转向到新的地址:
Redirect /旧目次/旧文档名 新文档的地址
或全部目次的转向:
Redirect 旧目次 新目次
改动缺省的首页文件
普通情形下缺省的首页文件名有default、index等。不外,有些时分目次中没出缺省文件,而是某个特定的文件名,好比在pmwiki中是pmwiki.php。这类情形下,要用户记住文件名来会见很费事。在.htaccess中可以等闲的设置新的缺省文件名:
DirectoryIndex 新的缺省文件名
也能够列出多个,按次标明它们之间的优先级别,例如:
DirectoryIndex filename.html index.cgi index.pl default.htm
避免盗链
假如不喜好他人在他们的网页上毗连本人的图片、文档的话,也能够经由过程htaccess的指令来做到。
所需求的指令以下:
RewriteEngine on
RewriteCond % !^$
RewriteCond % !^http://(www\.)?webjx.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ - [F]
假如感觉让他人的页面开个天窗欠好看,那可以用一张图片来取代:
RewriteEngine on
RewriteCond % !^$
RewriteCond % !^http://(www\.)?webjx.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.webjx.com/替换图片文件名 [R,L]
一. 自界说404,401,等毛病
1.
起首创立一个名为: .htaccess
写入以下内容
ErrorDocument 401 /err401.html
ErrorDocument 402 /err402.html
ErrorDocument 403 /err403.html
ErrorDocument 404 /err404.html
个中,401,402,403,404代表毛病类型,
前面的err401.html代表其绝对应的页面,
2.
分离创立名字为:
err401.html,err402.html.........
的文件,当呈现对应的毛病的时分,
就会指向对面的页面
3.
传到根目次下,
也就是 public_html 目次下
一切就OK了
二. 去失落告白
建个文件名 .htaccess 的文件, 文件内容以下:
LayoutIgnoreURI *.php
LayoutIgnoreURI *.cgi
LayoutIgnoreURI *.htm
LayoutIgnoreURI *.html
将 .htaccess 上传至空间的 Public_html 目次下,便可去失落告白!
注重 *.* 这里..想去那种扩大名的文件,就写上那种文件的扩大名!
这个是最复杂的办法,只需在根目次加这个文件,那末全部网站都不会有告白!
给你的建议是,有些最常用的语句是需要记住的 比如if for while这些、其他的一般语句你只要知道有这个函数或者有这个功能就可以了,当你用的时候你可以凭借记忆搜索就可以了。 |
|