天空之城

您当前位置>>首页>>其它>>资料>>htaccess文件用法收集整理

htaccess文件用法收集整理

来源:天空之城 - My Site   时间:2014-04-12 22:00:18   编辑:administrator   阅读数:225

[导读]对于网站的配置文件.htaccess相信大家都不陌生,.htaccess 是一个相当强大的配置文件,当然,功能强大的同时,一个轻微的语法错误也会让整个网站出现故障,所以,在你修改或是替换原有的文件时,一定要备份旧的文件,以便出现问题的时候可以方便的恢复。(其实不论什么都要养成备份的好习惯,特别是涉及“数据”这一块,相信很多运维都深有体会,这里忽然想到linux的一个命令就是rm –rf这个,只要1秒钟就能够让你…记住,备份很重要,在数据方面,谨慎,不多扯了,回到.htaccess这个问题)

htaccess文件用法收集整理

htaccess文件用法收集整理

对于网站的配置文件.htaccess相信大家都不陌生,.htaccess 是一个相当强大的配置文件,当然,功能强大的同时,一个轻微的语法错误也会让整个网站出现故障,所以,在你修改或是替换原有的文件时,一定要备份旧的文件,以便出现问题的时候可以方便的恢复。(其实不论什么都要养成备份的好习惯,特别是涉及“数据”这一块,相信很多运维都深有体会,这里忽然想到linux的一个命令就是rm –rf这个,只要1秒钟就能够让你…记住,备份很重要,在数据方面,谨慎,不多扯了,回到.htaccess这个问题)

.htaccess 文件 (Hypertext Access file) 是Apache Web服务器的一个非常强大的配置文件,对于这个文件,Apache有一堆参数可以让你配置出几乎随心所欲的功能。.htaccess 配置文件坚持了Unix的一个文化——使用一个ASCII 的纯文本文件来配置你的网站的访问策略。

下面是自己收集整理的一些.htaccess的用法或者说是技巧:

1.时区设置 
有些时候,当你在PHP里使用date或mktime函数时,由于时区的不同,它会显示出一些很奇怪的信息。下面是解决这个问题的方法之一。就是设置你的服务器的时区。你可以在这里找到所有支持的时区的清单。 
SetEnv TZ Australia/Melbourne 


2. 搜索引擎友好的301永久转向方法 
为什么这是搜索引擎友好的呢?因为现在很多现代的搜索引擎都有能根据检查301永久转向来更新它现有的记录的功能。 
Redirect 301 http://www.lanzusheng.cn/ http://www.cloud2south.com/


RewriteRule ^(.*)$ http://www.lanzusheng.cn/$1 [R=301,L]

 

或者把一些老的链接转到新的链接上——搜索引擎优化SEO

Redirect 301 /aaa/help.html http://www.lanzusheng.cn/aaa/help.html


3. 屏蔽下载对话框 
通常,当你下载东西的时候,你会看到一个对话框询问你是保持这个文件还是直接打开它。如果你不想看到这个东西,你可以把下面的一段代码放到你的.htaccess文件里。 

复制代码代码如下:
AddType application/octet-stream .pdf 
AddType application/octet-stream .zip 
AddType application/octet-stream .mov 


4。省去www前缀 
SEO的一个原则是,确保你的网站只有一个URL。因此,你需要把所有的通过www的访问转向的非www,或者反这来。 

复制代码代码如下:
RewriteEngine On 
RewriteBase / 
RewriteCond %{HTTP_HOST} ^www.cloud2south.com [NC] 
RewriteRule ^(.*)$ http://cloud2south.com/$1 [L,R=301] 


5. 个性化Error页面 
对每个错误代码定制自己个性化的错误页面。 

 

复制代码代码如下:
ErrorDocument 401 /error/401.php 
ErrorDocument 403 /error/403.php 
ErrorDocument 404 /error/404.php 
ErrorDocument 500 /error/500.php 


6. 压缩文件 
通过压缩你的文件体积来优化网站的访问速度。 

 

复制代码代码如下:
# 压缩 text, html, javascript, css, xml: 
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 


7. 缓存文件 
缓存文件是另外一个提高你的网站访问速度的好方法。 

 

复制代码代码如下:
Header set Cache-Control “max-age=2592000″ 


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

 

复制代码代码如下:
# 显式的规定对脚本和其它动态文件禁止使用缓存 
Header unset Cache-Control 

9. 为服务器管理员设置电子邮件。

ServerSignature EMail
SetEnv SERVER_ADMIN lzs@j2ason.com

 

安全问题 
下面的htaccess代码能够提高你的web服务器的安全水平。图片链接盗用保护非常有用,它能防止其他人偷盗使用你的服务器上的图片资源。 

1. 通过.htaccess防盗链 
痛恨那些偷盗链接你的web服务器上的图片资源而耗尽了你的带宽的行为吗?试试这个,你可以防止这种事情的发生。 

 

复制代码代码如下:
RewriteBase / 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://(www.)?j2ason.com/.*$ [NC] 
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L] 


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

 

复制代码如下:
RewriteEngine On 
# proc/self/environ? 没门! 
RewriteCond %{QUERY_STRING} proc/self/environ [OR] 
# 阻止脚本企图通过URL修改mosConfig值 
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] 
# 阻止脚本通过URL传递的base64_encode垃圾信息 
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR] 
# 阻止在URL含有<\script>标记的脚本 
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] 
# 阻止企图通过URL设置PHP的GLOBALS变量的脚本 
RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR] 
# 阻止企图通过URL设置PHP的_REQUEST变量的脚本 
RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2}) 
# 把所有被阻止的请求转向到403禁止提示页面! 
RewriteRule ^(.*)$ index.php [F,L] 


3. 阻止访问你的 .htaccess 文件 
下面的代码可以阻止别人访问你的.htaccess文件。同样,你也可以设定阻止多种文件类型。 

 

复制代码如下:
# 保护你的 htaccess 文件 
order allow,deny 
deny from all 

# 阻止查看指定的文件 
order allow,deny 
deny from all 

# 多种文件类型 
Order Allow,Deny 
Deny from all 


4. 重命名 htaccess 文件 
你可以通过重命名htaccess文件来对其进行保护。 

 

复制代码代码如下:
AccessFileName htacc.ess 


5. 禁止目录浏览 
禁止服务器对外显示目录结构,反之亦然。 

 

复制代码如下:
# 禁止目录浏览 
Options All -Indexes 
# 开放目录浏览 
Options All +Indexes 


6. 改变缺省的Index页面 
你可以把缺省的 index.html, index.php 或 index.htm 改成其它页面。 

 

复制代码如下:
DirectoryIndex business.html 


7. 通过引用信息来阻止某些不欢迎的浏览者 

 

复制代码代码如下:
# 阻止来自某网站的用户 
RewriteEngine on 
RewriteCond %{HTTP_REFERER} aaaa.com [NC,OR] 
RewriteCond %{HTTP_REFERER} bbbb.com [NC,OR] 
RewriteRule .* – [F] 

 

8. 阻止指定ip的访问
有些时候,你需要以IP地址的方式阻止一些访问。无论是对于一个IP地址还是一个网段,这都是一件非常简单的事情,如下所示:

allow from all
deny from XXX.XXX.XXX.XXX
deny from XXX.XXX

Apache对于被拒绝的IP会返回403错误。

另外可设置把这些ip请求重定向到别的站点:

ErrorDocument 403 http://www.j2ason.com/
Order deny,allow
allow from all
deny from XXX.XXX.XXX.XXX

deny from XXX.XXX

 

9. 通过判断浏览器头信息来阻止某些请求 
这个方法可以通过阻止某些机器人或蜘蛛爬虫抓取你的网站来节省你的带宽流量。 

 

复制代码如下:
# 阻止来自某些特定网站的用户 
SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider 
|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT 
SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT 
Deny from env=HTTP_SAFE_BADBOT 


10. 禁止脚本执行,加强你的目录安全 

 

复制代码如下:
# 禁止某些目录里的脚本执行权限 
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi 
Options -ExecCGI 

 

11. 口令认证,创建一个文件用于认证

# to protect a file

AuthType Basic
AuthName “Prompt”
AuthUserFile /home/path/.htpasswd
Require valid-user

# password-protect a directory
resides
AuthType basic
AuthName “This directory is protected”
AuthUserFile /home/path/.htpasswd
AuthGroupFile /dev/null
Require valid-user

 

12. 阻止 User Agent 的所有请求

## .htaccess Code :: BEGIN
## Block Bad Bots by user-Agent
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
SetEnvIfNoCase user-Agent ^Zeus [NC]

Order Allow,Deny
Allow from all
Deny from env=bad_bot

## .htaccess Code :: END

13. 直接找开文件而不是下载通常,我们打开网上文件的时候总是会出现一个对话框问我们是下载还是直接打开,使用下面的设置就不会出现这个问题了,直接打开

AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov

14. 修改文件类型下面的示例可以让任何的文件都成为PHP那么被服务器解释。比如:myphp, cgiphtml等。

ForceType application/x-httpd-php
SetHandler application/x-httpd-php

htaccess文件用法收集整理
原文地址:

上一篇:PHP获取文件扩展名的几种方法
下一篇:lamp编译出错问题解决

  • xiaoxiao | 2014-04-13 18:08:31

    沙发顶一个!

相关文章

更多»
    just do it
    天空之城天空之城