.htaccess文件常见的几个应用实例

国外主机 (566) 2015-03-26 14:49:39

简单来说,.htaccess文件就是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。

 

国外虚拟主机都支持.htaccess功能设置,可以帮我们实现网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能,下面和大家分享几个比较常见的应用实例。

 

1、禁止特定的IP

<Files 403.shtml>
order allow,deny
allow from all
</Files>
deny from 1.1.1.1 ;写要封的IP

 

2、只允许特定的IP访问

order deny,allow
deny from all
allow from 61.228.209.85

 

3、主域名指向子目录

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?maindomain.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?maindomain.com$
RewriteRule ^(/)?$ subfolder/index.php [L]

注:将maindomain.com修改为你的域名,将subfolder修改为你要指向的public_html下的子目录,最后一行中的index.php修改为你的网站的主页名称。

 

4、规范www

①、全部统一到带www,例如将idcspy.org统一到www.idcspy.org

RewriteEngine on
RewriteCond %{HTTP_HOST} ^yourdomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301]

②、全部统一到不带www,例如将idcspy.org统一到www.idcspy.org

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.yourdomain\.com$ [NC]
RewriteRule ^(.*)$ http://yourdomain.com/$1 [L,R=301]

 

5、防止别人域名恶意解析

RewriteEngine On
RewriteCond %{HTTP_HOST} !(^www\.yourdomain\.com$) [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301]

 

6、启用Deflate

 

在.htaccess中加入下面代码给指定文件后缀启用Deflate,Apache2.0以上版本支持Deflate。

<IfModule mod_deflate.c>
<FilesMatch "\.(js|css)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>
<FilesMatch "\.(js|css)$"> 指定启用Deflate的文件后缀,增加的后缀用|隔开即可,例如 <FilesMatch "\.(js|css|html|php)$">

 

7、设置默认首页及顺序

在.htaccess文件中加入以下后缀名(可以根据自身需求进行调整):

DirectoryIndex index.html index.htm index.php index.cgi 

 

8、禁止显示目录列表

如果目录没有默认首页文件,将会列出文件列表,可能造成安全隐患,为避免这种情况发生,可以在.htaccess文档中键入以下命令,用以阻止目录列表的显示:

Options -Indexes 

 

9、设置目录及文件密码保护

给目录设置密码保护,在该目录建立一个.htaccess文件,放入如下内容:

AuthUserFile /opt/guide/www.idcspy.org/.htpasswd
AuthType Basic
AuthName "Member Page"
require valid-user

注:AuthUserFile 设置密码文件的路径。

 

备注:.htaccess就是一个普通的文本文件,这样的文件在windows操作系统中无法建立,可以先建立一个htaccess.txt文件,上传到服务器以后再修改文件名,以上是在.htaccess中常见的几个应用示例,更多的用法大家可以阅读相关的.htaccess资料文献。

 

附录:

 

下面是各种错误页面的定义方式,把 /cgi-bin/exxx.php 部分修改成你要使用的错误页面的路径即可:

#BAD_REQUEST
ErrorDocument 400 /cgi-bin/e400.php
 
#UNAUTHORIZED
ErrorDocument 401 /cgi-bin/e401.php
 
#FORBIDDEN 禁止访问
ErrorDocument 403 /cgi-bin/e403.php
 
#NOT_FOUND 找不到文件
ErrorDocument 404 /cgi-bin/e404.php
 
#METHOD_NOT_ALLOWED 
ErrorDocument 405 /cgi-bin/e405.php
 
#REQUEST_TIME_OUT
ErrorDocument 408 /cgi-bin/e408.php
 
#GONE
ErrorDocument 410 /cgi-bin/e410.php
 
#LENGTH_REQUIRED
ErrorDocument 411 /cgi-bin/e411.php
 
#PRECONDITION_FAILED
ErrorDocument 412 /cgi-bin/e412.php
 
#REQUEST_ENTITY_TOO_LARGE
ErrorDocument 413 /cgi-bin/e413.php
 
#REQUEST_URI_TOO_LARGE
ErrorDocument 414 /cgi-bin/e414.php
 
#UNSUPPORTED_MEDIA_TYPE
ErrorDocument 415 /cgi-bin/e415.php
 
#INTERNAL_SERVER_ERROR 内部服务器错误
ErrorDocument 500 /cgi-bin/e500.php
 
#NOT_IMPLEMENTED
ErrorDocument 501 /cgi-bin/e501.php
 
#BAD_GATEWAY
ErrorDocument 502 /cgi-bin/e502.php
 
#SERVICE_UNAVAILABLE 服务不可用
ErrorDocument 503 /cgi-bin/e503.php
 
#VARIANT_ALSO_VARIES
ErrorDocument 506 /cgi-bin/e506.php

THE END