Skip to content
patwonder edited this page Apr 15, 2012 · 2 revisions

切换规则

首页 | 切换规则

切换规则

切换规则(Rule)用于智能切换内核和同步User Agent。某些网在生成Cookie时,需要浏览器的User Agent信息,如果切换内核时, User Agent发生改变,会导致从一个内核同步到另一个内核的Cookie失效。为了避免这个问题,需要同步User Agent。

规则概述

切换规则参考Adblock plus广告过滤规则设计, 分为2类:

  1. 内核规则(Engine Rule) 该规则用于匹配只支持IE的网址, 匹配成后, 解雇IE会自动切换至IE内核。

    内核规则通常为简化的正则表达式,如icbc.com.cn会使浏览工行网站http://www.icbc.com.cn时自动切换到IE内核。内核规则支持例外规则,以“@@”开头的规则代表例外规则。

  2. User Agent规则(User Agent Rule) 该规则用于将浏览器的User Agent统一改为IE内核的User Agent,也就是说匹配成功后,无论使用哪种内核,User Agent都是IE的。

    User Agent规则以"##"开头,其他部分格式与内核规则相同,如##icbc.com.cn会使工行网站http://www.icbc.com.cn使用IE的User Agent。User Agent例外规则与内核例外规则一样, 以“@@”开头。

基本规则

网址的中任何一段连续的文本都可以作为匹配的规则,以网址http://www.mozilla.com.cn为例, 适用的规则有:

如果需要匹配更多网站,可以使用通配符*, 它可代表任意个字符。如http://*.mozilla.com可匹配的网址有:

例外规则

有时会发现在大多数情况下某个切换规则工作正常,但在特殊情况下,切换会不正常。这里可以使用例外规则,将这些特殊情况下的网址排除。

例外规则语法与普通规则一样,你可以使用通配符和正则表达式,只是需要在规则前添加@@前缀。例如下面的2条规则

  • mozilla.com
  • @@app.mozilla.com

会匹配 http://www.mozilla.com,但不会匹配http://app.mozilla.com

匹配网址开头/结尾

管线符号(|)表示网址最前端或最末端。例如 |http://www.example 会匹配 http://www.example.com, 但不会匹配 http://www.test.com/analyze?http://www.example。例如 example.com|会匹配 http://www.example.com, 但不会匹配 http://www.example.com/index.html`。

双管线符号(||)表示从域名部分开始匹配。例如||icbc.com/可以匹配如下地址:

但不会匹配:

分隔符

符号(^)可匹配网址中的任何分隔符,即除了字母、数字或者 _ - . % 之外的任何字符。一个^匹配一个字符。常见的网址分隔有“.”、“:”、“/”、“&”、“=”。

下面例子中,标记部分是分隔符:
http://example.com:8000_/_foo.bar?a=12&b=%D1%82%D0%B5%D1%81%D1%82

注释

任何以感叹号 (!) 开始的规则,都被视为注释。

带参数的规则

解雇IE允许您指定某些参数来改变某条规则的行为。每条规则美元符号 ($) 后面的部分是参数列表,参数之前以逗号 (,) 分割,例如:

||example.com^*$match-case,domain=example.com

指定了2个参数match-casedomain=example.com

下面是目前支持的参数类型:

  • 域名限定

    参数 domain=example.com 指过滤规则只适用于 example.com 下的页面 。

    多个域名可以用 "|" 分隔: 过滤规则 domain=example.com|example.net 将只适用于 example.comexample.net 的页面。

    如果一个域名是前面有"~",则该过滤规则不适用于这个域名的页面。例如: domain=~example.com 指过滤规则适用于除了 example.com 之外的任何域名的页面而 omain=example.com|~foo.example.com 限定了过滤规则适用于 example.com 但不包括 foo.example.com

  • 大小写敏感

    参数match-case表示匹配时区分大小写。

    例如:过滤规则 */Fire-IE$match-case 会匹配 http://example.com/Fire-IE 但不会匹配 http://example.com/fire-ie

正则表达式

如果您想更好地控制您的过滤规则,也可以使用正则表达式。

您可以查看正则表达式的文档来学习如何写正则表达式。

注: 由于性能原因,建议尽可能避免使用正则表达式。

Clone this wiki locally