Die Übereinstimmung von Hostberechtigungen und Inhaltsscripts basiert auf einer Reihe von URLs, die durch Übereinstimmungsmuster definiert werden. Ein Abgleichsmuster ist im Grunde 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:
scheme: z. B.
http
,file
oder*
Hinweis:Der Zugriff auffile
-URLs ist nicht automatisch möglich. Der Nutzer muss die Seite zur Verwaltung von Erweiterungen aufrufen und für jede Erweiterung, für die der Zugriff angefordert wird, denfile
-Zugriff aktivieren.host, z. B.
www.google.com
,*.google.com
oder*
; wenn das Schemafile
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:
<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>
Die Bedeutung von *
hängt davon ab, ob es sich um den Teil schema, host oder path handelt. 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 *._hostname_
als host angegeben ist, entspricht er dem angegebenen Host oder einer seiner Subdomains. Im Abschnitt path entspricht jedes *
null oder mehr Zeichen. In der folgenden Tabelle sind einige gültige Muster aufgeführt.
Muster | Funktion | Beispiele für übereinstimmende URLs |
---|---|---|
http://*/* | Entspricht jeder URL, die das http -Schema verwendet | http://www.google.com/ http://example.org/foo/bar.html |
http://*/foo* | Entspricht jeder URL, die das http -Schema auf einem beliebigen Host verwendet, sofern der Pfad mit /foo beginnt. | http://example.com/foo/bar.html http://www.google.com/foo |
https://*.google.com/foo*bar | Entspricht jeder URL, die das https -Schema verwendet und sich auf einem google.com-Host wie www.google.com, docs.google.com oder google.com befindet, sofern der Pfad mit /foo beginnt und mit bar endet. | https://www.google.com/foo/baz/bar https://docs.google.com/foobar |
http://example.org/foo/bar.html | Entspricht der angegebenen URL | http://example.org/foo/bar.html |
file:///foo* | Entspricht jeder lokalen Datei, deren Pfad mit /foo beginnt. | file:///foo/bar.html file:///foo |
http://127.0.0.1/* | Entspricht jeder URL, die das http -Schema verwendet und sich auf dem Host 127.0.0.1 befindet. | http://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> | Entspricht jeder URL, 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 einige Beispiele für ungültige Musterübereinstimmungen:
Falsches Muster | Warum das schlecht ist |
---|---|
http://www.google.com | Kein Pfad |
http://*foo/bar | Auf „*“ im Host darf nur ein „.“ oder „/“ folgen. |
http://foo.*.bar/baz | Wenn „*“ im Host enthalten ist, muss es das erste Zeichen sein. |
http:/bar | Fehlendes Trennzeichen für das Schema („/“ muss „//“ sein) |
foo://* | Ungültiges Schema |
Einige Schemas werden nicht in allen Kontexten unterstützt.