Hostmachtigingen en overeenkomsten met inhoudsscripts zijn gebaseerd op een reeks URL's die zijn gedefinieerd door overeenkomstpatronen. Een overeenkomstpatroon is in essentie een URL die begint met een toegestaan schema ( http , https , file of ftp , en die ' * ' tekens kan bevatten. Het speciale patroon <all_urls> komt overeen met elke URL die begint met een toegestaan schema. Elke overeenkomst patroon bestaat uit 3 delen:
schema —bijvoorbeeld
httpoffileof*Opmerking: toegang totfile-URL's is niet automatisch. De gebruiker moet de extensiebeheerpagina bezoeken en zich aanmelden voorfilevoor elke extensie die daarom vraagt.host —bijvoorbeeld
www.google.comof*.google.comof*; als het schemafileis, is er geen hostdeelpad —bijvoorbeeld
/*,/foo*of/foo/bar. Het pad moet aanwezig zijn in een hostmachtiging, maar wordt altijd behandeld als/*.
Hier is de basissyntaxis:
<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>
De betekenis van ' * ' hangt af van of het zich in het schema- , host- of padgedeelte bevindt. Als het schema * is, komt het overeen met http of https , en niet file , ftp of urn . Als de host slechts * is, komt deze overeen met elke host. Als de host *._hostname_ is, komt deze overeen met de opgegeven host of een van zijn subdomeinen. In het padgedeelte komt elke ' * ' overeen met 0 of meer tekens. De volgende tabel toont enkele geldige patronen.
| Patroon | Wat het doet | Voorbeelden van overeenkomende URL's |
|---|---|---|
http://*/* | Komt overeen met elke URL die het http schema gebruikt | http://www.google.com/ http://example.org/foo/bar.html |
http://*/foo* | Komt overeen met elke URL die het http schema gebruikt, op elke host, zolang het pad maar begint met /foo | http://voorbeeld.com/foo/bar.html http://www.google.com/foo |
https://*.google.com/foo*bar | Komt overeen met elke URL die het https schema gebruikt en zich op een google.com-host bevindt (zoals www.google.com, docs.google.com of google.com), zolang het pad begint met /foo en eindigt met bar | https://www.google.com/foo/baz/bar https://docs.google.com/foobar |
http://example.org/foo/bar.html | Komt overeen met de opgegeven URL | http://example.org/foo/bar.html |
file:///foo* | Komt overeen met elk lokaal bestand waarvan het pad begint met /foo | bestand:///foo/bar.html bestand:///foo |
http://127.0.0.1/* | Komt overeen met elke URL die het http schema gebruikt en zich op host 127.0.0.1 bevindt | http://127.0.0.1/ http://127.0.0.1/foo/bar.html |
*://mail.google.com/* | Komt overeen met elke URL die begint met http://mail.google.com of https://mail.google.com . | http://mail.google.com/foo/baz/bar https://mail.google.com/foobar |
urn:* | Komt overeen met elke URL die begint met urn: . | urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582 urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da |
<all_urls> | Komt overeen met elke URL die een toegestaan schema gebruikt. (Zie het begin van dit gedeelte voor de lijst met toegestane schema's.) | http://example.org/foo/bar.html bestand:///bar/baz.html |
Hier volgen enkele voorbeelden van ongeldige patroonovereenkomsten:
| Slecht patroon | Waarom het slecht is |
|---|---|
http://www.google.com | Geen pad |
http://*foo/bar | '*' in de host kan alleen worden gevolgd door een '.' of '/' |
http://foo.*.bar/baz | Als '*' in de host staat, moet dit het eerste teken zijn |
http:/bar | Ontbrekend schemascheidingsteken ("/" moet "//") zijn |
foo://* | Ongeldig schema |
Sommige schema's worden niet in alle contexten ondersteund.