Übereinstimmungsmuster

Der Abgleich von Hostberechtigungen und Inhaltsskripten basiert auf einer Reihe von URLs, die durch Abgleichsmuster definiert sind. Ein Übereinstimmungsmuster ist im Wesentlichen eine URL, die mit einem zulässigen Schema (http, https, file oder ftp) beginnt und *-Zeichen enthalten kann. Das spezielle Muster <all_urls> stimmt mit jeder URL überein, die mit einem zulässigen Schema beginnt. Jedes Übereinstimmungsmuster besteht aus drei Teilen:

  • Schema, z. B. http oder file oder *

    Hinweis:Der Zugriff auf file-URLs erfolgt nicht automatisch. Der Nutzer muss die Seite für die Verwaltung von Erweiterungen aufrufen und für jede Erweiterung, von der sie angefordert wird, den file-Zugriff aktivieren.
  • host, z. B. www.google.com oder *.google.com oder *. Wenn das Schema file ist, gibt es keinen host-Teil.

  • Pfad, z. B. /*, /foo* oder /foo/bar. Der Pfad muss in einer Hostberechtigung vorhanden sein, wird aber immer als /* behandelt.

Die grundlegende Syntax lautet:

&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;

Die Bedeutung von „*“ hängt davon ab, ob es sich im Teil scheme, host oder path befindet. Wenn das Schema * ist, entspricht es entweder http oder https und nicht file, ftp oder urn. Wenn der Host nur * ist, entspricht er jedem Host. Wenn der host *._hostname_ ist, werden der angegebene Host oder eine seiner Subdomains zugeordnet. Im Abschnitt path entspricht jeder *-Wert 0 oder mehr Zeichen. Die folgende Tabelle enthält einige gültige Muster.

MusterZweckBeispiele für übereinstimmende URLs
http://*/*Stimmt mit jeder URL überein, die das Schema http verwendethttp://www.google.com/
http://example.org/foo/bar.html
http://*/foo*Entspricht jeder URL auf einem beliebigen Host, die das Schema http verwendet, solange der Pfad mit /foo beginnthttp://example.com/foo/bar.html
http://www.google.com/foo
https://*.google.com/foo*barEntspricht jeder URL, die das Schema https verwendet und sich auf einem google.com-Host befindet (z. B. www.google.com, docs.google.com oder google.com), solange der Pfad mit /foo beginnt und mit bar endethttps://www.google.com/foo/baz/bar
https://docs.google.com/foobar
http://example.org/foo/bar.htmlStimmt mit der angegebenen URL übereinhttp://example.org/foo/bar.html
file:///foo*Findet jede lokale Datei, deren Pfad mit /foo beginntfile:///foo/bar.html
file:///foo
http://127.0.0.1/*Entspricht jeder URL, die das Schema http verwendet und sich auf dem Host 127.0.0.1 befindethttp://127.0.0.1/
http://127.0.0.1/foo/bar.html
*://mail.google.com/*Entspricht jeder URL, die mit http://mail.google.com oder https://mail.google.com beginnt.http://mail.google.com/foo/baz/bar
https://mail.google.com/foobar
urn:*Entspricht jeder URL, die mit urn: beginnt.urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582
urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da
<all_urls>Stimmt mit jeder URL überein, die ein zulässiges Schema verwendet. Eine Liste der zulässigen Schemas finden Sie am Anfang dieses Abschnitts.http://example.org/foo/bar.html
file:///bar/baz.html

Hier sind einige Beispiele für ungültige Musterübereinstimmungen:

Ungültiges MusterWarum ist das schlecht?
http://www.google.comKein Pfad
http://*foo/bar„*“ im Host darf nur von „.“ oder „/“ folgen
http://foo.*.bar/baz Wenn „*“ im Host enthalten ist, muss es das erste Zeichen sein
http:/barFehlendes Trennzeichen für scheme ("/" sollte "//") sein
foo://*Ungültiges Schema

Einige Schemas werden nicht in allen Kontexten unterstützt.