25 个有用 Apache ‘.htaccess’ 技巧(5)

对于所有这样的 URL,代码永久重定向它们(如果启用了 R=301 规则)到新 URL $1,其中 $1 是主机为 abc.net 的非 www URL。非 www URL 是大括号内的内容,并通过 $1 引用。

重写 URL 的重定向规则

重写功能简单的说,就是用短而易记的 URL 替换长而难以记忆的 URL。但是,在开始这个话题之前,这里有一些本文后面会使用的特殊字符的规则和约定。

特殊符号:

符号含义

^-字符串开头

$ -字符串结尾

|-[a|b] a b

[a-z]- a z 的任意字母

+-之前字母的一次或多次出现

*-之前字母的零次或多次出现

?-之前字母的零次或一次出现

常量和它们的含义:

常量含义

NC -区分大小写

L -最后的规则停止处理后面规则

R -临时重定向到新 URL

R=301-永久重定向到新 URL

F -禁止发送403头给用户

P -代理-获取远程内容代替部分并返回

G -Gone不再存在

S=x -跳过后面的 x 条规则

T=mime-type -强制指定 MIME 类型

E=var:value -设置环境变量var的值为 value

H=handler -设置处理器

PT -Pass through -用于 URL 还有额外的头

QSA -将查询字符串追加到替换 URL

19. 重定向整个站点到 https

下面的行会帮助你转换整个网站到 https:

RewriteEngine ON

RewriteCond%{HTTPS}!on

RewriteRule(.*) https://%{HTTP_HOST}%{REQUEST_URI}

上面的行启用重写引擎,然后检查环境变量 HTTPS 的值。如果设置了那么重写所有网站页面到 https。

20.一个自定义重写例子

例如,重定向 url ‘?p=100&q=20’ 到 ‘’。

RewriteEngine ON

RewriteRule^http://www.abc.net/([0-9]+)([0-9]+)pq$ ^?p=$1&q=$2

在上面的行中,$1 表示第一个括号,$2 表示第二个括号。

21. 重命名 htaccess 文件

为了防止入侵者和其他人查看 .htaccess 文件,你可以重命名该文件,这样就不能通过客户端浏览器访问。实现该目标的语句是:

AccessFileName htac.cess

22. 如何为你的网站禁用图片盗链

网站带宽消耗比较大的另外一个重要问题是盗链问题,这是其它站点用于显示你网站的图片而链接到你的网站的链接,这会消耗你的带宽。这问题也被成为 ‘带宽盗窃’。

一个常见现象是当一个网站要显示其它网站所包含的图片时,由于该链接需要从你的网站加载内容,消耗你站点的带宽而为其它站点显示图片。为了防止出现这种情况,比如对于 .gif、.jpeg 图片等,下面的代码行会有所帮助:

RewriteEngine ON

RewriteCond%{HTTP_REFERER}!^$

RewriteCond%{HTTP_REFERERER}!^http://(www\.)?mydomain.com/.*$ [NC]

RewriteRule \.(gif|jpeg|png)$ -[F].

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9add67ee352f9c7766b0ea61e62df31b.html