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
http
offile
of*
Opmerking: toegang totfile
-URL's is niet automatisch. De gebruiker moet de extensiebeheerpagina bezoeken en zich aanmelden voorfile
voor elke extensie die daarom vraagt.host —bijvoorbeeld
www.google.com
of*.google.com
of*
; als het schemafile
is, 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.