16个简单实用的.htaccess使用技巧

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

这篇文章包括了16个非常有用的小技巧。另外,因为.htaccess 是一个相当强大的配置文件,所以,一个轻微的语法错误会造成你整个网站的故障,所以,在你修改或是替换原有的文件时,一定要备份旧的文件,以便出现问题的时候可以方便的恢复。

1. 使用.htaccess 创建自定义的出错页面。对于Linux Apache来说这是一项极其简单的事情。使用下面的.htaccess语法你可以轻松的完成这一功能。(把.htaccess放在你的网站根目录下)

ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php

2. 设置网站的时区

SetEnv TZ America/Houston

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

allow from all
deny from 145.186.14.122
deny from 124.15

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

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

Redirect 301 /d/file.html http://www.htaccesselite.com/r/file.html

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

ServerSignature EMail
SetEnv SERVER_ADMIN default@domain.com

6. 使用.htaccess 访止盗链。如果你网站上的一个图片被别的N多的网站引用了,那么,这很有可能会导致你服务器的性能下降,使用下面的代码可以保护某些热门的链接不被过多的引用。

Options +FollowSymlinks
# Protect Hotlinking
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?domainname.com/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://domainname.com/img/hotlink_f_o.png [nc]

7. 阻止 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

8. 把某些特殊的IP地址的请求重定向到别的站点

ErrorDocument 403 http://www.youdomain.com
Order deny,allow
Deny from all
Allow from ip
Allow from ip

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

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

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

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

11. 阻止存取.htaccess 文件

# secure htaccess file
order allow,deny
deny from all

12. 保护服务器上的文件被存取

# prevent access of a certain file order allow,deny
deny from all

13. 阻止目录浏览

# disable directory browsing
Options All -Indexes

14. 设置默认主页

# serve alternate default index page
DirectoryIndex about.html

15. 口令认证 – 你可以创建一个文件用于认证。下面是一个示例:

# 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

16. 把老的域名转像新的域名

# redirect from old domain to new domain
RewriteEngine On
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L]

(0)

相关推荐

  • 使用htaccess规范化网址的配置

    本文解决两个问题: 第一是:如果访问的网址不加www则自动加上www 第二:如果访问的网址是别名指向的,则自动转化为主域名 第一个问题解决方法: rewriteEngine on rewriteCond %{http_host} ^jb51.net [NC] rewriteRule ^(.*)$ http://www.jb51.net/$1 [R=301,L] 第二个问题解决: RewriteEngine on RewriteCond %{HTTP_HOST} ^jb51.net$ [OR] R

  • htaccess语法教程

    虽然以前的文章没有了,但我至少得保证原来到域名能够继续访问到新的博客,浏览到新的文章,于是想起用htaccess来做重定向.这次对htaccess的写法做个记录,免得今后还要到处搜罗. 这是我这次用到的几条重定向规则 复制代码 代码如下: RewriteEngine on #silentash全局切换 Rewritecond %{HTTP_HOST} ^(www\.)?silentash.com$ [nc] Rewriterule ^(.*)$ http://jb51.net/$1 [r=301

  • php静态化页面 htaccess写法详解(htaccess怎么写?)

    1 . 如何让自己的本地APACHE服务器支持.htaccess 如何让自己的本地APACHE服务器支持".htaccess"呢?其实只要简单修改一下apache的httpd.conf设置就可以让APACHE支持.htaccess了,来看看操作 打开httpd.conf文件(在那里? APACHE目录的CONF目录里面),用文本编辑器打开后,查找 (1) Options FollowSymLinks AllowOverride None 改为 Options FollowSymLink

  • 通过配置.htaccess文件实现子目录绑定二级域名的方法

    使用LINUX共享主机,控制面版是CPANEL的朋友都知道,他默认绑定主域名的根目录为public_html 所以如果想要放域名yourdomain.com能直接访问,势必需要把所有文件全直接放进public_html下.这时候如果你想再建个子站,bbs.yourdomain.com,这时BBS目录就和其他php文件或主站的文件夹混在一起,很不利于管理. 一般LINUX主机都支持.htaccess文件,所以我们可以通过.htaccess文件来实现转向 以下以blog目录和blog.shuxion

  • .htaccess绑定域名到子目录的方法

    RewriteEngine on     # 把 yourdomain.com 改为你要绑定的域名.     RewriteCond %{HTTP_HOST} ^(www.)?prcer.com$ # 把 subfolder 改为要绑定的目录.     RewriteCond %{REQUEST_URI} !^/subfolder/ # 不要改以下两行.     RewriteCond %{REQUEST_FILENAME} !-f     RewriteCond %{REQUEST_FILEN

  • apache下.htaccess的功能及写法

    - .htaccess 文件(或者"分布式配置文件"提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录.作为用户,所能使用的命令受到限制.管理员可以通过Apache的AllowOverride指令来设置. - 子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令. - .htaccess必须以ASCII模式上传,最好将其权限设置为644. 错误文档的定位 常用的客户端请求错误返回代码: 401 Authori

  • .htaccess使用方法总结

    .htaccess是Apache服务器的一个非常强大的分布式配置文件.正确的理解和使用.htaccess文件,可以帮助我们优化自己的服务器或者虚拟主机.比如可以利用.htaccess文件创建自定义的"404 error"页面,更改很多服务器的配置.而我们所需要做的,仅仅是在这个文本文档中添加几条简单的指令而已. Unix或Linux系统,或任何版本的Apache Web服务,都是支持.htaccess的,但是有的主机服务商可能不允许你自定义自己的.htaccess文件.国外目前主流的虚

  • htaccess Rewrite中文编码问题解决方法

    .htaccess文件 RewriteRule ^(.*).html$ index.php?id=$1 对于一个网址http://www.jb51.net/我是谁.html 我们将会遇到以下4种情况 http://www.jb51.net/我是谁.html (这里的"我是谁"是GB2312编码) IE打开,接收到的id是utf8编码的"我是谁" FireFox打开,接收不到id值,并且Apache会出现403错误. 这里需要着重说明一下,因为FireFox会将&qu

  • .htaccess文件写法之作用范围

    有太多的朋友会碰到一个问题,那就是htaccess文件冲突的问题,比如说,一个站点,全站是用伪静态,并且是用的虚拟主机,那就必须要用.htaccess文件规则来实现,同时用CMS文件做门户用DZ做BBS,用WP做BLOG,我只知道WP与DZ程序的静态化就会存在着冲突,可能会导致DZ的静态化文件失效.这样的话,就用到了htaccess文件的作用范围. 下面写一个最基本,也是最标准的htaccess文件: 复制代码 代码如下: # BEGIN <IfModule mod_rewrite.c> Re

  • 16个简单实用的.htaccess使用技巧

    .htaccess 文件 (Hypertext Access file) 是Apache Web服务器的一个非常强大的配置文件,对于这个文件,Apache有一堆参数可以让你配置出几乎随心所欲的功能..htaccess 配置文件坚持了Unix的一个文化--使用一个ASCII 的纯文本文件来配置你的网站的访问策略. 这篇文章包括了16个非常有用的小技巧.另外,因为.htaccess 是一个相当强大的配置文件,所以,一个轻微的语法错误会造成你整个网站的故障,所以,在你修改或是替换原有的文件时,一定要备

  • Android开发中一个简单实用的调试应用技巧分享

    前言 大家应该都有所体会,在应用开发中,我们常常会进行日志打印或者debug调试,以此来分析运行时的一些信息,便于发现bug和问题.Android Studio的Debug功能很好用,但是有时候有些情况下,就显得不是那么快捷和便利. 比如 我们调试的点在应用一打开的时候,很靠前,例如Application的onCreate方法中,以至于我们不能足够快的设置进程为debug模式 虽然上面的情况可以通过Android Studio的debug运行来解决,但是如果项目很大的话,运行起来也会比较耽误时间

  • 简单实用的Android studio 调试技巧

    说到android studio的调试,很多人可能会说,这有什么可讲的不就是一个断点调试么,刚开始我也是这么认为的,直到我了解之后,才发现,调试原来可以玩的这么牛.下面我分别一一做介绍. 条件断点(Conditional Breakpoints) 这个调试模式是我最喜欢的,简直不能再方便了,以前遇到在循环里面打断点,需要看某个条件下的值,我只能一遍遍点击,直到满足条件. 那么这个条件断点改怎么用呢,在你的断点上点击右键,就会弹出一个选择对话框,在里面的condition框里面填写上你所需要中断的

  • python实用的快捷语法技巧大全

    目录 前言 in判断 四种翻转字符串/列表的方式 平方数 进制转换 将字符串中的小写字母转为大写字母 一次性初始化多个变量 打印模块路径 列表去重 字典和列表推导 拼接字符串 循环枚举索引 开启文件分享 巧用else语句(重要) split reduce 我们把最近的知识结合起来做一道题 sorted 执行一个字符串表达式,并返回表达式的值 总结 前言 你知道a**3是什么意思吗? 你知道怎么打印模块路径吗? 你知道reduce()函数怎么用和列表怎么拼接字符串吗? 然而你可能全都知道 但是还是

  • 12个非常实用的JavaScript小技巧【推荐】

    这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是否有一个有效值,如果存在就返回true值.为了做这样的验证,我们可以使用!!操作符来实现是非常的方便与简单.对于变量可以使用!!variable做检测,只要变量的值为:0.null." ".undefined或者NaN都将返回的是false,反之返回的是true.比如下面的示例: funct

  • PHP实现简单实用的分页类代码

    本文实例讲述了PHP实现简单实用的分页类.分享给大家供大家参考,具体如下: <?php class Page { private $total; //总记录 private $pagesize; //每页显示多少条 private $limit; //limit private $page; //当前页码 private $pagenum; //总页码 private $url; //地址 private $bothnum; //两边保持数字分页的量 //构造方法初始化 public funct

  • js实现简单实用的AJAX完整实例

    本文实例讲述了js实现简单实用的AJAX的方法.分享给大家供大家参考,具体如下: //版权归属 WUJXPING //ajax 1.2 //更新2012-2-20 //1.异步数据加载可以进行加载方式get,post的设定 //2.异步同步模式的属性设定 //3.数据加载自动超时设置 //4.***数据加载事件的添加,通过事件可以进行服务器数据的实时处理 //5.增加回调函数中用户自定义参数this.e //6.增加ajax反复提交控制,只需将ajax对象定义为全局变量,每次提交都会进行等待上次

  • 分享一些非常实用的Python小技巧

    目录 1.唯一性 2.变位词(相同字母异序词) 3.内存 4.字节大小 5.打印N次字符串 6.首字母大写 7.列表细分 8.压缩 9.计数 10.链式比较 11.逗号分隔 12.元音计数 13.首字母小写 14.展开列表 15.寻找差异 16.输出差异 17.链式函数调用 18. 19.将两个列表转换为字库 20.出现频率最高的元素 21.回文(正反读有一样的字符串) 22.不用if-else语句的计算器 23.随机排序 24.展开列表 1.唯一性 以下方法可以检查给定列表是否有重复的地方,可

  • JS获取地址栏参数的两种方法(简单实用)

    js获取地址栏参数的方法有两种:第一种,采用正则表达式获取地址栏参数,第二种,是比较传统的方法,在这小编给大家强烈推荐使用第一种方法,既方便有实用,具体实现过程请看下文详述. 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window

  • JavaScript实现非常简单实用的下拉菜单效果

    本文实例讲述了JavaScript实现非常简单实用的下拉菜单效果.分享给大家供大家参考.具体如下: 这是一款实用的JS下拉菜单,鼠标移上菜单就显示出二级菜单,是从其它网站上整理下来的,修改花了不少时间,现在去除了一些无用代码,更简洁了,而且代码兼容性似乎也表现不错,这款两级下拉菜单,基本是由CSS和JavaScript共同实现的,真的挺简洁实用. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-css-down-show-menu-code

随机推荐