`

21非常有用的htaccess的方法与技巧

阅读更多

Apache Web服务器有一个伟大的方式来处理信息,使用htaccess的文件。htaccess文件(超文本的访问)的目录级别的配置文件,允许Web服务器配置的分散管理的默认名称。htaccess文件是放置在Web树,是能够覆盖服务器的全局配置的一个子集,这个子集的程度是由Web服务器管理员定义。。htaccess的最初目的是让每个目录访问控制(例如,需要密码才能访问的内容),因此这个名字。如今的。htaccess可以覆盖许多其他配置设置,主要涉及内容的控制,例如,内容类型和字符集,CGI处理程序,等等。

以下是一些非常有用的htaccess的技巧。   站长百科  PHP教程同步首发

1。自定义目录索引文件

DirectoryIndex index.html index.php index.htm

您的htaccess文件中使用上面的片段,你可以改变默认的索引文件的目录。如果一个用户请求/ foo /中,Apache将服务是/ foo / index.html的,或您指定的任何文件。

2。自定义错误页面

ErrorDocument 404 errors/404.html 

您可能希望将用户重定向到一个错误页面是像404的HTTP错误发生。您可以使用htaccess文件中映射的404错误错误页errors/404.html的上面的片段。你也可能想要写一个共同的页面,所有HTTP错误如下:

ErrorDocument 404 /psych/cgi-bin/error/error?404 

3。控制在文件和目录级别的访问

htaccess是最常用的限制或拒绝个别文件和文件夹的访问。一个典型的例子是“包括”文件夹。您的网站的网页可以调用这些脚本,所有他们喜欢的,但你不希望用户访问这些文件,直接在网上。在这种情况下,你会下降。htaccess文件,像这样的内容包括夹。

# no one gets in here!
deny from all

这将拒绝所有直接访问该文件夹中的任何文件。你可以与你的情况更具体,例如访问限制到一个特定的IP范围,这里有一个方便的顶级本地测试服务器的规则。

# no nasty crackers in here!
order deny,allow
deny from all
allow from 192.168.0.0/24
# this would do the same thing..
#allow from 192.168.0

一般来说,这些要求的各种反弹防火墙无论如何,而是一个活生生的服务器上,他们成为有用过滤掉不受欢迎的IP块,已知的风险,很多事情。

有时候,你只会想禁止一个IP,也许是一些持久的机器人,不按规则玩。

# someone else giving the ruskies a bad name..
order allow,deny
deny from 83.222.23.219
allow from all

4。修改环境变量

环境变量包含服务器端所使用的信息,包括和CGI。设置/取消设置环境变量使用SETENVUnSetEnv

SetEnv SITE_WEBMASTER "Jack Sprat"
SetEnv SITE_WEBMASTER_URI mailto:Jack.Sprat@characterology.com

UnSetEnv REMOTE_ADDR 

5。301重定向使用htaccess的

如果你想从旧的文件重定向到新:

Redirect 301 /old/file.html http://yourdomain.com/new/file.html

使用以下重定向整个目录。

RedirectMatch 301 /blog(.*) http://yourdomain.com/$1

6。实施计划。htaccess文件高速缓存

缓存的静态文件,并提高您的网站的性能。

# year
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf|mp3|mp4)$">
Header set Cache-Control "public"
Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"
Header unset Last-Modified
</FilesMatch>
#2 hours
<FilesMatch "\.(html|htm|xml|txt|xsl)$">
Header set Cache-Control "max-age=7200, must-revalidate"
</FilesMatch>
<FilesMatch "\.(js|css)$">
SetOutputFilter DEFLATE
Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"
</FilesMatch>

7。使用GZIP压缩输出

下面的代码片断添加到您的htaccess文件和压缩所有的CSS,JS,用gzip压缩的HTML文件。

<IfModule mod_gzip.c>
    mod_gzip_on       Yes
    mod_gzip_dechunk  Yes
    mod_gzip_item_include file      \.(html?|txt|css|js|php|pl)$
    mod_gzip_item_include handler   ^cgi-script$
    mod_gzip_item_include mime      ^text/.*
    mod_gzip_item_include mime      ^application/x-javascript.*
    mod_gzip_item_exclude mime      ^image/.*
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

上面的代码工作mod_gzip模块只有在您的Web服务器中启用。如果您的网络服务器提供支持mod_deflate模块,您可能需要添加下面的代码片断。

<Location>
    SetOutputFilter DEFLATE
      SetEnvIfNoCase Request_URI  \
        \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI  \
        \.(?:exe|t?gz|zip|gz2|sit|rar)$ no-gzip dont-vary
</Location> 

如果您的服务器不支持mod_deflate模块,那么你可能需要使用下面的代码片断。

<FilesMatch "\.(txt|html|htm|php)">
	php_value output_handler ob_gzhandler
</FilesMatch>

8。浏览器重定向到HTTPS(SSL)

下面的代码片断添加到您的htaccess的和整个网站重定向到HTTPS。

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

9。重写的URL使用htacccess

重写product.php?ID = 12产品-12.html

RewriteEngine on
RewriteRule ^product-([0-9]+)\.html$ product.php?id=$1

的重写product.php?ID = 12至product/ipod-nano/12.html

RewriteEngine on
RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ product.php?id=$2

非WWW网址重定向到www的网址

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

重写yoursite.com / user.php?用户名= XYZ yoursite.com / XYZ

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1

域名重定向到新的子文件夹内的public_html

RewriteEngine On
RewriteCond %{HTTP_HOST} ^test\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.test\.com$
RewriteCond %{REQUEST_URI} !^/new/
RewriteRule (.*) /new/$1 

10。防止目录列表

添加下面的代码片段,以避免目录列表。

Options -Indexes

IndexIgnore * 

11。添加新的MIME类型

取决于文件扩展名的文件类型。无法识别的文件扩展名被视为文本数据,并下载损坏。

AddType application/x-endnote-connection enz
AddType application/x-endnote-filter enf
AddType application/x-spss-savefile sav

12。拒绝访问静态文件数据

如果推荐人是不是本地站点或空否认有任何静态文件(图像,CSS等)的要求。

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{REQUEST_URI} !^/(wp-login.php|wp-admin/|wp-content/plugins/|wp-includes/).* [NC]
RewriteCond %{HTTP_REFERER} !^http://www.askapache.com.*$ [NC]
RewriteRule \.(ico|pdf|flv|jpg|jpeg|mp3|mpg|mp4|mov|wav|wmv|png|gif|swf|css|js)$ - [F,NS,L]

13。指定上传htaccess的PHP文件限制

php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200

在上面的。htaccess文件,上传能力由四个参数,第一个是最大上传文件大小的增加,第二个是后数据的最大大小,第三个是在几秒钟的时间上限,允许脚本运行之前,它是终止解析器允许一个脚本解析输入数据,如像文件上传,最后一个是在几秒钟内最大的一次,POST和GET数据。

14。禁止脚本执行

Options -ExecCGI
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi

15。更改字符集和语言的头文件

AddDefaultCharset UTF-8
DefaultLanguage en-US

16。设置服务器的时区(GMT)

SetEnv TZ America/Indianapolis

17。力“的文件另存为”提示“

AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4

18。一个单一的文件保护

通常情况下的。htaccess适用于整个目录。随着 指令,你可以限制到特定的文件:

<Files quiz.html>
order deny,allow
deny from all
AuthType Basic
AuthName "Characterology Student Authcate"
AuthLDAP on
AuthLDAPServer ldap://directory.characterology.com/
AuthLDAPBase "ou=Student, o=Characterology University, c=au"
require valid-user
satisfy any
</Files> 

19。使用htaccess的设置cookie

设置环境变量的Cookie

Header set Set-Cookie "language=%{lang}e; path=/;" env=lang

基于请求设置的Cookie。此代码将创建在客户端上的Cookie,在第二个括号匹配项的值的Set-Cookie头。

RewriteEngine On
RewriteBase /
RewriteRule ^(.*)(de|es|fr|it|ja|ru|en)/$ - [co=lang:$2:.yourserver.com:7200:/]

20。寄自定义页眉

Header set P3P "policyref=\"http://www.askapache.com/w3c/p3p.xml\""
Header set X-Pingback "http://www.askapache.com/xmlrpc.php"
Header set Content-Language "en-US"
Header set Vary "Accept-Encoding"

21。根据User-Agent头阻塞请求

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

 

分享到:
评论
2 楼 QQ223449684 2014-06-26  
我已经知道空间默认不会gzip  ,但我怎样去判断 空间还支持那种 zip 先呢?我想开 全局 压缩包括 css js ,怎样做的呢?
1 楼 QQ223449684 2014-06-26  
太精彩了~~    

相关推荐

    htaccess手册

    除了上述内容外,还可以参考以下文章进一步学习和了解 .htaccess 的使用技巧和案例: - **网址规范化之通用 URL 重写规则**:详细介绍了如何通过 URL 重写实现网址规范化。 - **解决 Addon 域名可用主域名的子目录...

    htaccess代码

    htaccess

    htaccess_Editor HTACCESS编辑器

    《htaccess_Editor:探索与理解HTACCESS编辑器的奥秘》 在互联网的世界里,配置网站的安全性和功能往往离不开一个看似不起眼但至关重要的文件——`.htaccess`。`.htaccess`(分布式配置文件)是Apache服务器配置的...

    Apache 的. htaccess 利用技巧1

    总的来说,`.htaccess` 文件是Web服务器配置中一个非常实用的工具,它提供了灵活的权限管理和功能扩展能力,对于网站管理和优化具有重要的作用。通过熟练掌握 `.htaccess` 文件的用法,可以有效地调整服务器行为,...

    Htaccess

    一个用来操作apache的.htaccess文件的类 它可以帮您处理Apache服务器的.htaccess文件。 您并不需要去了解.htaccess的语法,这个类会帮你搞定一些譬如修改权限、增加使用者的操作.

    htaccess规则详细介绍

    #### 一、概述与基础属性 `htaccess`是Apache服务器配置文件之一,位于网站根目录下,主要负责处理网站的URL重写、密码保护、错误页面自定义等高级功能。其文件名以`.`开头,表明这是一个隐藏文件。权限属性为644...

    htaccess文件使用指南

    本文将深入探讨`.htaccess`文件的使用方法及其对网站的积极影响,帮助读者掌握这一关键技能。 #### .htaccess文件简介与功能 `.htaccess`文件,虽然只是一个文本文件,但其能力却不可小觑。它可以改变服务器的设置...

    .htaccess伪静态

    .htaccess伪静态 适用方维分享系统以及其他php

    PHP实例开发源码——htaccess Editor htaccess在线生成器收藏版.zip

    《PHP实例开发:htaccess Editor与htaccess在线生成器详解》 在Web开发领域,PHP是一种广泛应用的服务器端脚本语言,尤其在处理动态网页内容和服务器配置方面扮演着重要角色。而.htaccess(分布式配置文件)是...

    nginx支持.htaccess伪静态rewrite的方法.docx

    Nginx 支持 .htaccess 伪静态 Rewrite 的方法 Nginx 是一款流行的 Web 服务器软件,广泛应用于网站建设和开发中。随着网站的发展,URL 重写(Rewrite)已经成为一种必不可少的技术手段。.htaccess 文件是 Apache ...

    强化Wordpress安全的.Htaccess设定的11个技巧.doc

    强化Wordpress安全的.Htaccess设定的11个技巧.doc

    htaccess上传攻击.pdf

    由于这种灵活性,.htaccess文件在网站配置中非常重要。 在此次攻击中,攻击者通过创建一个特别配置的.htaccess文件,使得所有包含特定字符串(本例为“yueyan”)的文件被作为PHP脚本执行。其核心在于配置指令和...

    ThinkPHP的.htaccess文件

    ThinkPHP的去除URL中的index.php的.htaccess文件

    五个htaccess文件的常用技巧.docx

    【htaccess文件基础概念】 .htaccess(分布式配置文件)是Apache服务器中的一个配置文件,它允许用户通过在网站根目录下创建此文件,对网站进行一些定制化的设置,而无需直接修改服务器的主配置文件。这使得网站...

    apache开启.htaccess及.htaccess的使用方法.docx

    Apache开启.htaccess及.htaccess的使用方法 Apache 的.htaccess 文件是一种基于目录的配置文件,可以对特定的目录或子目录进行配置。通过修改 Apache 的配置文件 httpd.conf,可以开启.htaccess 文件的使用。下面...

    zencart .htaccess

    zencart .htaccess

    htaccess 文件下载

    htaccess 文件下载

Global site tag (gtag.js) - Google Analytics