一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

.htaccess文件常用规则与例子

时间:2022-06-30 17:54:52 编辑:袖梨 来源:一聚教程网


. htaccess文件是Apache中相当重要的配置文件,其格式为纯文本,它提供了针对目录改变配置的方法,通过在一个特定的文档目录中放置一个包含一个或多个指令的文件,以作用于此目录及其所有子目录。

通过. htaccess文件,可以实现简单地很多在IIS中很繁琐甚至无法实现的功能,如密码保护、禁止显示目录列表、阻止/允许特定的IP地址、实现网址的301 重定向等等。

1、301重定向

出于SEO、网址转换的目的,在网址初建或者网站迁移时我们都需要使用301重定向,通常包括了域名对域名、目录对目录和一个独立网址对另一个独立网址的重定向。在Linux虚拟主机上做301重定向,最常用的方法就是直接编辑.htaccess文件或者用cPanel设定。实质上两者的本质的本质都是对.htaccess文件进行修改,我们这里主要讲第一种直接编辑.htaccess文件的方法。

如要重定向aips.com到www.aips.com旨在使域名唯一,只需打开.htaccess文件,加入以下代码:

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

若要重定向文件的话,如需吧A.com/file/fileA.php 到 B.com/file/fileB.php,只需要加入以下代码:

RewriteCond %{HTTP_HOST} ^www.A.com$
RewriteRule ^file/file.php$ http://www.B.com/file/fileB.php [R=301,L]

2、防盗链功能

所谓盗链,是指其他网站直接链接我们网站上的文件,一般来说,盗链的对象大多为很耗带宽的大体积文件,如图片、视频等。这样就容易造成服务器的流量负担,从而影响网站的访问速度,为了保证我们的网站流量能被自己充分利用,我们可以通过修改.htaccess文件设置防盗链来限制外站引用站内文件,只需打开.htaccess文件,加入以下代码:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !aips.com [NC]//这一行是设置允许访问的HTTP来源,包括我们的站点自身,也可以另写一行将域名换成baidu、Google等。
RewriteRule .*.(gif|jpg|png)$ – [F]//格式根据不同情况删改,如mp3、rar等,不同格式之间用'”|”分割即可。

3、阻止/允许特定的IP地址

某些情况下,你可能只想允许某些特定IP的用户可以访问你的网站,或者想封禁某些特定的IP地址。当然,这只在你知道你想拦截的IP地址时才有用,然而现在网上的大多数用户都使用动态IP地址,所以这并不是限制使用的常用方法:

1、你可以使用以下命令封禁一个IP地址:

deny from 000.000.000.000
这里的000.000.000.000是被封禁的IP地址,如果你只指明了其中的几个,则可以封禁整个网段的地址。如你输入210.10.56.,则将封禁210.10.56.0~210.10.56.255的所有IP地址。

 

2、你也可以使用以下命令允许一个IP地址访问网站:

allow from 000.000.000.000
被允许的IP地址则为000.000.000.000,你可以象封禁IP地址一样允许整个网段。
3、如果你想阻止/允许所有人访问该目录,则可以使用:
deny from/allow from  all

4、自定义错误页

htaccess的一个应用是自定义错误页面,这将使你可以拥有自己的、个性化的错误页面(例如找不到文件时),而不是你的服务商提供的错误页或没有任何页面。这会让你的网站在出错的时候看上去更专业。只需要在.htaccess文件中加入以下代码即可自定义几种最常用的错误:

ErrorDocument 400 /errors/badrequest.html//Bad request 错误请求

ErrorDocument 401 /errors/authreqd.html//Authorization Required 需要验证

ErrorDocument 403 /errors/forbid.html//Forbidden 禁止

ErrorDocument 404 /errors/notfound.html//Wrong page 找不到页面

ErrorDocument 500 /errors/serverr.html//Internal Server Error 内部服务器错误

5、压缩文件

通过压缩你的文件(text、html、JavaScript、css、xml等)体积来优化网站的访问速度,这对很多想提升网站访问速度的站长非常有用,你只需在.htaccess文件里面直接添加以下代码:

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
6、对某些文件缓存或禁止缓存

缓存文件是另外一个提高你的网站访问速度的好方法。你只需要在.htaccess文件中加入如下代码:

#
Header set Cache-Control “max-age=2592000″
>

而另一方面,你也可以定制对某些文件类型禁止使用缓存:


Header unset Cache-Control

7、省去WWW前缀

SEO的一个原则是,确保你的网站只有一个URL。因此,你需要把所有的通过www的访问转向的非www,或者反过来,你可以在.htaccess文件中加入如下代码实现:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.aips.me [NC]
RewriteRule ^(.*)$ http://aips.me/$1 [L,R=301]
8、防黑客

如果你想提高网站的安全等级,你可以加上下面的几行代码,这样可以防止一些常见恶意URL匹配的黑客攻击技术:

RewriteEngine On

RewriteCond %{QUERY_STRING} proc/self/environ [OR]//proc/self/environ? No Way!

RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [OR]// 阻止脚本企图通过URL修改mosConfig值

RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]// 阻止脚本通过URL传递的base64_encode垃圾信息

RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]//阻止在URL含有