Overeenkomen met patronen

Hostmachtigingen en overeenkomsten met inhoudsscripts zijn gebaseerd op een reeks URL's die zijn gedefinieerd door overeenkomstpatronen. Een overeenkomstpatroon is in wezen 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 of file of *

    Opmerking: toegang tot file URL's is niet automatisch. De gebruiker moet de extensiebeheerpagina bezoeken en zich aanmelden voor file voor elke extensie die daarom vraagt.
  • host —bijvoorbeeld www.google.com of *.google.com of * ; als het schema file is, is er geen hostdeel

  • pad —bijvoorbeeld /* , /foo* of /foo/bar . Het pad moet aanwezig zijn in een hostmachtiging, maar wordt altijd behandeld als /* .

Hier is de basissyntaxis:

&lt;url-pattern&gt; := &lt;scheme&gt;://&lt;host&gt;&lt;path&gt;
&lt;scheme&gt; := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
&lt;host&gt; := '*' | '*.' &lt;any char except '/' and '*'&gt;+
&lt;path&gt; := '/' &lt;any chars&gt;

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.