1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>FoxyProxy Pattern Help</title>
<link rel="icon" type="image/png" href="/images/icon.svg">
<link rel="stylesheet" href="styles/fontawesome-4.6.3.css">
<link rel="stylesheet" href="styles/app.css">
<style>
td { font-size: 0.9em; }
td:not(:first-of-type) { font-family: monospace; }
</style>
</head>
<body>
<!-- header -->
<div class="prime header">Pattern Help</div>
<!-- main -->
<div class="prime">
<div style="text-align: right;">
<div class="tooltip">
<span data-i18n="patternCheatSheet" class="fp-orange"></span>
<i class="fa fa-info-circle"></i>
<div class="tooltiptext bottom table">
<div class="tooltiptable">
<div class="monospace">*</div>
<div>all domains</div>
<div class="monospace">*.bbc.co.uk</div>
<div>exact domain and all subdomains</div>
<div class="monospace">**.bbc.co.uk</div>
<div>subdomains only (not bbc.co.uk)</div>
<div class="monospace">bbc.co.uk</div>
<div>exact domain only</div>
</div>
<hr>
<div class="tooltiptablefooter">
<div>Black patterns take precedence over white patterns. For example, a black pattern of <span class="monospace">*</span> means nothing will match, regardless of any white patterns.</div>
</div>
</div>
</div>
|
<a href="/pattern-tester.html" target="_blank"><span data-i18n="patternTester"></span> <i class="fa fa-flask"></i></a>
</div>
<p><h3 style="display: inline-block;">TL;DR</h3>: <a href="#examples">show me the examples</a></p>
<h3>What are they?</h3>
<p>Patterns are a way to specify groups of URLs: a pattern matches a specific set of URLs. If a white pattern matches a URL the browser wants to load, the proxy for that white pattern is used to load the URL <strong class="prime tiny warning">unless a black pattern also matches!</strong> Black patterns take precendence over white patterns and are always checked first. If both white and black patterns (in the same proxy) match a URL, that proxy is <strong>not</strong> used to load that URL.</p>
<div class="prime small warning">Patterns are <strong>ignored</strong> unless FoxyProxy is set to <i>Use Enabled Proxies By Patterns and Priority</i>.</div>
<h3>Ordering</h3>
<p>Every URL is compared with the patterns for each proxy. The white/black patterns for the top-most (first) proxy are checked first, then the next set of white/black patterns are checked, and on down the list of proxies until there is a match. If there is no match, Firefox's native proxy settings are used to load the URL. Older versions of FoxyProxy had a <i>Default</i> proxy that acted as a catch-all to matches all URLs. You may still have <i>Default</i> in FoxyProxy if you upgraded from a previous version.
<p>You can re-order the proxies using the arrow buttons as you like, but <strong>the white/black patterns for the top-most (first) proxy are checked first.</strong></p>
<p>If a black pattern matches, the proxy is not used for that URL <i>even if a white pattern also matches</i>. The black pattern takes priority. The URL may, however, load through another proxy you've defined if that proxy has a matching whitelist pattern and no matching blacklist pattern.</p>
<p>The order of white patterns and black patterns within a proxy do not matter.</p>
<h3>Wildcards</h3>
<div class="prime alert">
Because of <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1337001">Firefox limitations</a>, only URL domains, subdomains, and ports are recognized in patterns. Do not use paths or query parameters in patterns. Example: <strong>*.foxyproxy.com:30053</strong> is OK but not <strong>*.foxyproxy.com:30053/help/*</strong>
</div>
<h4 id="examples">Examples</h4>
<table>
<thead><tr><th>Pattern</th><th>Example Matches</th><th>Example Non-Matches</th></thead>
<tbody>
<tr>
<td><strong>*.foxyproxy.com</strong><br>Match URLs at foxyproxy.com and all subdomains</td>
<td>foxyproxy.com/order.html<br>help.foxyproxy.com/index.html<br>foo.bar.foxyproxy.com<br>twostep.foxyproxy.com</td>
<td>mozilla.com</td>
</tr>
<tr>
<td><strong>.foxyproxy.com</strong><br>Match URLs at foxyproxy.com and all subdomains<br>(same as pattern above)</td>
<td>foxyproxy.com/order.html<br>help.foxyproxy.com/index.html<br>foo.bar.foxyproxy.com<br>twostep.foxyproxy.com</td>
<td>mozilla.com</td>
</tr>
<tr>
<td><strong>**.foxyproxy.com</strong><br>Match URLs <strong>only at subdomains</strong> of foxyproxy.com</td>
<td>help.foxyproxy.com<br>help.foxyproxy.com/index.html<br>foo.bar.foxyproxy.com</td>
<td>foxyproxy.com</td>
</tr>
<tr>
<td><strong>foxyproxy.com</strong><br>Match all URLs at foxyproxy.com but not subdomains</td>
<td>foxyproxy.com<br>foxyproxy.com/index.html</td>
<td>help.foxyproxy.com</td>
</tr>
<tr>
<td><strong>*foo*</strong><br>Match all URLs with a domain containing the letters foo</td>
<td>foo.com<br>foodle.com<br>one.befoo.org</td>
<td>bar.com</td>
</tr>
<tr>
<td><strong>*foo*.com</strong></td>
<td>foo.com<br>foodle.com<br>food.com</td>
<td>one.befoo.org<br>food.org</td>
</tr>
<tr>
<td><strong>g?ogle.*</strong><br>? matches any single character</td>
<td>google.com<br>grogle.org<br>google.com/maps</td>
<td>goog.com</td>
</tr>
<tr>
<td><strong>.catsinsinks.com:8080</strong><br>Port matching!</td>
<td>catsinsinks.com:8080<br>www.catsinsinks.com:8080<br>www.catsinsinks.com:8080/privacy</td>
<td>catinsinks.net</td>
</tr>
</tbody>
</table>
<h4>Notes</h4>
<p>If a wildcard pattern begins with <strong>.</strong> or <strong>*.</strong> then it matches the main domain and all subdomains in a URL.</p>
<p>To match <strong>only</strong> subdomains, use <strong>**</strong> instead of <strong>*</strong> in the beginning. Example: <strong>**.foxyproxy.com</strong> will match <strong>help.foxyproxy.com</strong> but will not match <strong>foxyproxy.com</strong>.</p>
</div>
<script src="scripts/pattern-tester.js"></script>
</body>
</html>
|