-
Notifications
You must be signed in to change notification settings - Fork 28
rules
首页 | 切换规则
切换规则(Rule)用于智能切换内核和同步User Agent。某些网在生成Cookie时,需要浏览器的User Agent信息,如果切换内核时, User Agent发生改变,会导致从一个内核同步到另一个内核的Cookie失效。为了避免这个问题,需要同步User Agent。
切换规则参考Adblock plus广告过滤规则设计, 分为2类:
-
内核规则(Engine Rule) 该规则用于匹配只支持IE的网址, 匹配成后, 解雇IE会自动切换至IE内核。
内核规则通常为简化的正则表达式,如
icbc.com.cn会使浏览工行网站http://www.icbc.com.cn时自动切换到IE内核。内核规则支持例外规则,以“@@”开头的规则代表例外规则。 -
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
- http://www.mozilla.com
如果需要匹配更多网站,可以使用通配符*, 它可代表任意个字符。如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-case和domain=example.com。
下面是目前支持的参数类型:
-
域名限定
参数
domain=example.com指过滤规则只适用于example.com下的页面 。多个域名可以用 "|" 分隔: 过滤规则
domain=example.com|example.net将只适用于example.com或example.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。
如果您想更好地控制您的过滤规则,也可以使用正则表达式。
您可以查看正则表达式的文档来学习如何写正则表达式。
注: 由于性能原因,建议尽可能避免使用正则表达式。