.htaccess
.htaccess是ApacheHTTPServer的文件目录系统级别的配置文件的默认的名字。它提供了在主配置文件中定义用户自定义指令的支持。这些配置指令需要在.htaccess上下文和用户需要的适当许可。
下面的这些声明经常用于配置服务器,来发送出自定义的文档在响应客户端时的错误,就像"404:NotFound没有找到"或者服务器错误如"503:ServiceUnavailable服务无法提供"(参看HTTP状态代码表ListofHTTPstatuscodes):
ErrorDocument404/error-pages/not-found.html
ErrorDocument503/error-pages/service-unavailable.html
当设置了自定义的报错页面,重要的是记住这些页面能处理多种多样的URL,当在这些出错的文档链接(包括图片,样式脚本和其他文档)必须指定使用"绝对"URL(比如开头为"http://")或者相对文档根目录的URL(开头用"/")。
同样,对于访问网站其他未被授权访问部分的用户,"403:Forbidden禁止"错误的报错页面必须放在该用户能访问到的目录下。
常规的做法是
用新建另外的包含这些代码行:
Orderallow,deny
Allowfromall
htaccess文件在/error-pages目录下,来建立可被任何人访问的目录来包含这些报错页面。
给用户显示目录以前需要输入账户名及密码。
AuthUserFile/home/newuser/www/stash/.htpasswd
AuthGroupFile/dev/null
AuthName"ProtectedDirectory"
AuthTypeBasic
requireusernewuser
这个方法同样适用在一个目录下某个特殊的文件。
AuthUserFile/home/newuser/www/stash/.htpasswd
AuthName"ProtectedFile"
AuthTypeBasic
Requirevalid-user
下面是创建新用户newuser的新密码的代码命令。
htpasswd/home/newuser/www/stash/.htpasswdnewuser
解除密码保护
在另外的保护的框架中,解除一个子目录的密码保护:
Satisfyany
AddTypetext/html.shtml
AddHandlerserver-parsed.shtml
OptionsIndexesFollowSymLinksIncludes
Orderallow,deny
Denyfrom123.45.67.8
Denyfrom123.123.7
Allowfromall
上面能禁止IP地址在123.45.67.8以及IP地址开头为123.123.7的任何人。例如123.123.74.42就不能得到访问。
DirectoryIndexhomepage.html
这个任何人可以访问http://www.example.com/能看到该站的主页homepage.html的页面,胜过默认的index.html。
Redirectpage1.htmlpage2.html
如果某人访问http://www.example.com/page1.html,他将被跳转到(带有HTTP状态代码302)的http://www.example.com/page2.html
后面的.htaccess规则使用了modrewrite.
特别域名
RewriteEngineon
RewriteCond%{HTTP_REFERER}^http://([^/]+\.)?baddomain1\.com[NC,OR]
RewriteCond%{HTTP_REFERER}^http://([^/]+\.)?baddomain2\.com[NC,OR]
RewriteCond%{HTTP_REFERER}^http://([^/]+\.)?baddomain3\.com[NC]
RewriteRule\.(gif|jpg)$http://www.example.com/hotlink.gif[R,L]
非特别域名
RewriteEngineon
RewriteCond%{HTTP_REFERER}!^$
RewriteCond%{HTTP_REFERER}!^http://(www\.)?example.com/.*$[NC]
RewriteRule\.(gif|jpg)$http://www.example.com/hotlink.gif[R,L]
除非example.com有这个图片,浏览器才能看到hotlink.gif.
注意:Hotlink热链保护使用.htaccess依赖客户端在httpGET请求中发送正确的"提交"值。像尝试使用WindowsMediaPlayer发送空白的提交到.htaccess来保护电影档案是无效的。
统一WEB地址
RewriteEngineOn
RewriteCond%{HTTP_HOST}!^www\.
RewriteRule^(.*)$http://www.%{HTTP_HOST}/$1[R=301,L]
如果有人输入你的网站地址没有''''www''''前缀,上面代码能让这些地址能跳转到有''''www''''前缀的页面
一个.htaccess文件控制所在目录,包括所有子目录。不管怎样,放置其他的.htaccess文件在子目录都是无效的.
.htaccess用户许可,是服务器级别AllowOverride控制,标明是Apache服务器文档的证明文件.
已有一些WEB开发者修改.htaccess来完成在服务内容传到浏览器之前,自定义的服务器端的任务。开发者ShaunInman展示了这种没有CSS的修改.htaccess可能,请访问allowforServerSideConstants.
)


