博主热衷各种互联网技术,常啰嗦,时常伴有强迫症,常更新,觉得文章对你有帮助的可以关注我。 转载请注明"深蓝的镰刀"


书接上回,《Apache之.htaccess备忘录(一)》

4.配置.htaccess 阻止/允许特定的IP地址

 deny from 000.000.000.000
deny from 000.000.000.
allow from 000.000.000.000
deny from all

5.更改默认访问文件

DirectoryIndex filename.html index.cgi index.pl default.htm

6.重定向目录或文件

Redirect OldDirectory NewDirectory Redirect OldFile NewFile

注意:目录重定向后目录后的url会追加到新的目录后

7.图片防盗链

 <IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/ [NC] RewriteRule \.(gif|jpg|png)$ http://www.example.com/替代图片文件名 [R,L] </IfModule>

8.URL重写

 <IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/ [NC] RewriteRule \.(gif|jpg|png)$ http://www.example.com/替代图片文件名 [R,L] </IfModule>

第一行 确定你开启了rewrite模块,如果没有,请参考Apache之.htaccess备忘录(一)

第二行 开启Rewite引擎

第三行 确保重写后的基地址是你写.htaccess文件的位置、

第四行 重写规则,并且使用R参数保证跳转是显示的

保存在你网站根目录,然后试试输入 http://www.yourweb.com/123

999.附录:各种语法详细解释

1)RewriteCond指令格式

* 用途:Rewrite规则启动的一些前提条件

* 语法: RewriteCond TestString CondPattern [flags]

* TestString表示待检查的变量,支持:

$N 其中(0 <= N <= 9) 。$N引用紧跟在RewriteCond后面的RewriteRule中模板中的括号中的模板在当前URL中匹配的数据。非常常用,具体用法在RewriteRule中会介绍。

%N 其中(0 <= N <= 9) 。%N引用最后一个RewriteCond的模板中的括号中的模板在当前URL中匹配的数据。

以及各种变量,如%{HTTP_REFERER} ,%{REQUEST_FILENAME},%{REQUEST_URI},%{DOCUMENT_ROOT}%{REQUEST_FILENAME}

* CondPattern表示匹配规则,Perl风格的正则表达式,同时支持以下特殊用法:

'>CondPattern’ (大于) 将condPattern当作一个普通字符串,将它和TestString进行比较,当TestString 的字符大于CondPattern为真。

‘=CondPattern’ (等于) 将condPattern当作一个普通字符串,将它和TestString进行比较,当TestString 与CondPattern完全相同时为真.如果CondPattern只是 “” (两个引号紧挨在 一起) 此时需TestString 为空字符串方为真。

‘-d’ (是否为目录) 将testString当作一个目录名,检查它是否存在以及是否是一个目录。

‘-f’ (是否是regular file) 将testString当作一个文件名,检查它是否存在以及是否是一个regular文件。

‘-s’ (是否为长度不为0的regular文件) 将testString当作一个文件名,检查它是否存在以及是否是一个长度大于0的regular文件。

‘-l’ (是否为symbolic link) 将testString当作一个文件名,检查它是否存在以及是否是一个 symbolic link。

‘-F’ (通过subrequest来检查某文件是否可访问) 检查TestString是否是一个合法的文件,而且通过服务器范围内的当前设置的访问控制进行访问。这个检查是通过一个内部subrequest完成的, 因此需要小心使用这个功能以降低服务器的性能。

‘-U’ (通过subrequest来检查某个URL是否存在) 检查TestString是否是一个合法的URL,而且通过服务器范围内的当前设置的访问控制进行访问。这个检查是通过一个内部subrequest完成的, 因此需要小心使用这个功能以降低服务器的性能。

* flags是一些参数:

[OR] 强制加下一个条件和条件组成“或”的关系

[NC](no case)表示忽略大小写

2)RewriteRule指令格式

* 用途: 实际执行的Rewrite规则

* 语法: RewriteRule Pattern Substitution [flags]

* Pattern表示待搜索的规则,Perl风格的正则表达式

* Substitution表示匹配Pattern后URL改写的值

其中该字符串支持一个非常常用的用法:$N 其中(0 <= N <= 9) 。就是类似$1,$2的用法,该用法可以直接引用Pattern中括号中匹配的值

如:

RewriteRule ^/([\w]+)/([0-9]+)$ -$1-$2.html 就可以将“/web/1313”改写成"-web-1313.html"

* flags是一些参数:

[L](last):终止一系列的RewriteCond和RewriteRule

[R](redirect):触发一个显示的跳转,也可以指定跳转类型,如[R=301],这个参数经常会用到,比如你希望在重定向的时候URL也变化,那么就加上这个参数

[F](forbidden):禁止查看特定文件,apache会触发403错误

[G](gone)强制URL为已废弃的 gone

[P](proxy)强制为代理 proxy

[N](next)重新执行 next round

[C](chain)与下一个规则相链接 chained

[T=MIME-type](type)强制MIME类型 type

[NS](nosubreq)仅用于不对内部子请求进行处理 no internal sub-request

[NC](no case)表示忽略大小写

[QSA](qsappend) 追加请求串 query string append

[NE] (noescape)在输出中不对URI作转义 no URI escaping

[PT] (passthrough)移交给下一个处理器 pass through

Apache之.htaccess备忘录(二)的更多相关文章

  1. Apache之.htaccess备忘录(一)

    .htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置,也是使用apache的同学最常碰到的文件,下面罗列一些常用的知识,以备不时之需. 1 . 如何让Apache支持 ...

  2. 使用apache和htaccess对目录访问设置密码保护配置教程

    对目录设置密码保护配置说明我们有时候访问某些网站的时候,要求输入用户名和密码才能访问.这是为了保护隐私,只让经过许可的人访问.在本教程中主要介绍两种方法,一种是通过apache httpd.conf配 ...

  3. apache环境.htaccess设置301跳转及常用.htaccess技巧整理

    apache环境.htaccess设置301跳转及常用.htaccess技巧整理 无论是Nginx,还是Apache都各自有优势,对于我们普通用户而言基本上也没有多大的区别.在虚拟主机环境中,基本上都 ...

  4. apache开启.htaccess及.htaccess的使用方法(转)

    apache开启.htaccess及.htaccess的使用方法 作者: 字体:[增加 减小] 类型:转载 时间:2010-12-02 今天本地调试PHP程序,用到了.htaccess,而默认配置里面 ...

  5. 使用Apache的.htaccess就可以防盗链

    Apache的.htaccess可以实现很多功能,如密码保护.禁止显示目录列表.阻止/允许特定的IP地址.实现网址的301 重定向等等.本文就来说说使用Apache的.htaccess如何防盗链. 当 ...

  6. apache开启.htaccess

    1 . 如何让的本地APACHE开启.htaccess 如何让的本地APACHE开启.htaccess呢?其实只要简朴修改一下apache的httpd.conf设置就让APACHE.htaccess了 ...

  7. mac下为Apache 创建 .htaccess文件

    标签:mac   .htaccess 在设置固定链接时会提示如下的问题:   若您的 .htaccess 文件可写,我们可以自动修改它.但似乎它不可写,因此我们在下方列出了您 .htaccess 文件 ...

  8. 服务器设置Apache对htaccess支持

    root权限下运行a2enmod(a2enmod是一个可以配置Apache的工具,a2enmod是属于apache2.2-common包下的一个工具),然后输入rewrite启动apache对于.ht ...

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

    今天本地调试PHP程序,用到了.htaccess,而默认配置里面开启.htaccess,在网上找到了开启.htaccess的可行方法,供朋友们借鉴.(开启的我他的方法不行,查找了一下AllowOver ...

随机推荐

  1. JDK1.8源码TreeMap

    基于红黑树(Red-Black tree)的 NavigableMap 实现:键的排序由构造方法决定:自然排序,Comparator排序:非线程安全(仅改变与现有键关联的值不是结构上的修改):线程安全 ...

  2. 【技巧总结】Penetration Test Engineer[1]-Basic

    1.渗透测试基础 1.1.渗透测试分类 黑盒测试:从远程网络位置来评估目标网络基础设施,没有任何相关信息 白盒测试:内部发起,了解到关于目标环境的所有内部与底层知识 灰盒测试:结合两者优势,根据对目标 ...

  3. 谈谈.NET MVC QMVC高级开发

    自从吾修主页上发布了QMVC1.0,非常感兴趣,用了半月的时间学习,真的感觉收益非浅,在此声明非常感谢吾修大哥的分享! 1.轻快简单,框架就几个类,简单,当然代码少也就运行快!单纯的MVC,使的如果你 ...

  4. 华夏部分互联网科技公司创始及IPO信息

    时间:2018-04-19 前面整理了一些美国科技公司的信息,这篇文章整理的是我华夏的一些科技公司的信息. 华为.百度.阿里.腾讯.美团.携程.京东.小米.奇虎360……之后,其它一些公司,要么体量 ...

  5. 使用Netty4实现基本的消息分发

    示例工程代码 可从附件下载 具体的说明和用法在后面介绍 需求与目的 一个游戏服务端需要处理各种业务逻辑,每一种业务逻辑都对应着一个请求消息和一个响应消息.那么服务端需要把这些不同的消息自动分发到对应的 ...

  6. ThinkPHP文件目录说明

    1.ThinkPHP文件包下目录结构说明 2.ThinkPHP文件目录下文件说明 3.Conf目录下 4.Library目录

  7. TDictionary 与 TObjectDictionary

    TDictionary 与 TObjectDictionary 的区别是 : TObjectDictionary 可以做到 free的时候 里面的对象 一并free,从而不会出现内存 泄露. 用途: ...

  8. TStringList 与 泛型字典TDictionary 的 哈希功能效率PK

    结论: 做HashMap 映射 功能的时候 ,字典TDictionary 功能更强大,且效率更高,比如不仅仅可以存String,还可以存结构和类. TDictionary类是一个name,value容 ...

  9. MySQL学习笔记:调用存储过程或函数报1418错误

    问题 MySQL开启bin-log后,调用存储过程或者函数以及触发器时,会出现错误号为1418的错误: ERROR 1418 (HY000): This function has none of DE ...

  10. hdu 1760 DFS+博弈

    0代表可放 1带表不能放 每次放一个2*2的方块 不能放者败如果先手必胜则输出Yes 必胜态:从当前状态所能到达的状态中存在一个必败态必败态:从当前状态所能达到的状态全部是必胜态 Sample Inp ...