Match patterns

Match-Muster sind eine Möglichkeit, Gruppen von URLs zu spezifizieren: Ein Match-Muster entspricht einem bestimmten Satz von URLs. Sie werden in WebExtensions-APIs an mehreren Stellen verwendet, insbesondere um festzulegen, in welche Dokumente Content Scripts geladen werden sollen, und um zu bestimmen, welchen URLs webRequest-Listener hinzugefügt werden sollen.

APIs, die Match-Muster verwenden, akzeptieren normalerweise eine Liste von Match-Mustern und führen die entsprechende Aktion durch, wenn die URL einem der Muster entspricht. Siehe zum Beispiel den content_scripts-Schlüssel in der manifest.json.

Struktur der Match-Muster

Hinweis: Einige Browser unterstützen bestimmte Schemes nicht. Überprüfen Sie die Tabelle zur Browser-Kompatibilität für Details.

Alle Match-Muster werden als Zeichenfolgen angegeben. Abgesehen vom speziellen Muster <all_urls> bestehen Match-Muster aus drei Teilen: scheme, host und path. Das Scheme und der Host werden durch :// getrennt.

<scheme>://<host><path>

scheme

Der scheme-Teil kann eine von zwei Formen annehmen:

Form Entspricht
* Nur "http" und "https" und in einigen Browsern auch "ws" und "wss".
Eines von http, https, ws, wss, ftp, data, file oder (chrome-)extension. Nur das angegebene Scheme.

host

Der host-Teil kann eine von drei Formen annehmen:

Form Entspricht
* Jeder Host.
*. gefolgt von einem Teil des Hostnamens. Der angegebene Host und alle seine Subdomains.
Ein vollständiger Hostname, ohne Platzhalter. Nur der angegebene Host.

host darf keine Portnummer enthalten.

host ist nur optional, wenn scheme "file" ist.

Beachten Sie, dass der Platzhalter nur am Anfang erscheinen darf.

path

Der path-Teil muss mit einem / beginnen.

Danach kann er jede Kombination aus dem Platzhalter * und beliebigen Zeichen enthalten, die in URL-Pfaden oder Abfragezeichenfolgen erlaubt sind. Im Gegensatz zu host kann der path-Teil den Platzhalter * in der Mitte oder am Ende enthalten, und der Platzhalter * kann mehrmals erscheinen.

Der Wert für den path wird mit dem String verglichen, der aus dem URL-Pfad plus der URL-Abfragezeichenfolge besteht. Dies schließt das ? zwischen beiden ein, wenn die Abfragezeichenfolge in der URL vorhanden ist. Wenn Sie beispielsweise URLs auf einer beliebigen Domain abgleichen möchten, bei denen der URL-Pfad mit foo.bar endet, müssen Sie ein Array von Match-Mustern wie ["*://*/*foo.bar", "*://*/*foo.bar?*"] verwenden. Das ?* ist notwendig, anstatt nur bar*, um sicherzustellen, dass das abschließende * auf die URL-Abfragezeichenfolge angewandt wird und nicht auf einen Teil des URL-Pfades.

Weder der URL-Fragment-Identifier noch das ihm vorangegangene # werden als Teil des path betrachtet.

Hinweis: Der Pfadmuster-String sollte keine Portnummer enthalten. Das Hinzufügen eines Ports, wie in: http://localhost:1234/*, führt dazu, dass das Match-Muster ignoriert wird. http://localhost:1234 wird jedoch mit http://localhost/* übereinstimmen.

<all_urls>

Der spezielle Wert <all_urls> entspricht allen URLs unter jedem der unterstützten Schemes: das sind "http", "https", "ws", "wss", "ftp", "data" und "file".

Beispiele

Muster Beispielhafte Übereinstimmungen Beispielhafte Nicht-Übereinstimmungen

<all_urls>

Übereinstimmung mit allen URLs.

http://example.org/

https://a.org/some/path/

ws://sockets.somewhere.org/

wss://ws.example.com/stuff/

ftp://files.somewhere.org/

resource://a/b/c/
(nicht unterstütztes Scheme)

ftps://files.somewhere.org/
(nicht unterstütztes Scheme)

*://*/*

Übereinstimmung mit allen HTTP-, HTTPS- und WebSocket-URLs.

http://example.org/

https://a.org/some/path/

ws://sockets.somewhere.org/

wss://ws.example.com/stuff/

ftp://ftp.example.org/
(nicht übereinstimmendes Scheme)

file:///a/
(nicht übereinstimmendes Scheme)

*://*.mozilla.org/*

Übereinstimmung mit allen HTTP-, HTTPS- und WebSocket-URLs, die auf "mozilla.org" oder einem seiner Subdomains gehostet sind.

http://mozilla.org/

https://mozilla.org/

http://a.mozilla.org/

http://a.b.mozilla.org/

https://b.mozilla.org/path/

ws://ws.mozilla.org/

wss://secure.mozilla.org/something

ftp://mozilla.org/
(nicht übereinstimmendes Scheme)

http://mozilla.com/
(nicht übereinstimmender Host)

http://firefox.org/
(nicht übereinstimmender Host)

*://mozilla.org/

Übereinstimmung mit allen HTTP-, HTTPS- und WebSocket-URLs, die genau auf "mozilla.org/" gehostet sind.

http://mozilla.org/

https://mozilla.org/

ws://mozilla.org/

wss://mozilla.org/

ftp://mozilla.org/
(nicht übereinstimmendes Scheme)

http://a.mozilla.org/
(nicht übereinstimmender Host)

http://mozilla.org/a
(nicht übereinstimmender Pfad)

ftp://mozilla.org/

Übereinstimmung nur mit "ftp://mozilla.org/".

ftp://mozilla.org

http://mozilla.org/
(nicht übereinstimmendes Scheme)

ftp://sub.mozilla.org/
(nicht übereinstimmender Host)

ftp://mozilla.org/path
(nicht übereinstimmender Pfad)

https://*/path

Übereinstimmung mit HTTPS-URLs auf jedem Host, deren Pfad "path" ist.

https://mozilla.org/path

https://a.mozilla.org/path

https://something.com/path

http://mozilla.org/path
(nicht übereinstimmendes Scheme)

https://mozilla.org/path/
(nicht übereinstimmender Pfad)

https://mozilla.org/a
(nicht übereinstimmender Pfad)

https://mozilla.org/
(nicht übereinstimmender Pfad)

https://mozilla.org/path?foo=1
(nicht übereinstimmender Pfad aufgrund der URL-Abfragezeichenfolge)

https://*/path/

Übereinstimmung mit HTTPS-URLs auf jedem Host, deren Pfad "path/" ist und die keine URL-Abfragezeichenfolge haben.

https://mozilla.org/path/

https://a.mozilla.org/path/

https://something.com/path/

http://mozilla.org/path/
(nicht übereinstimmendes Scheme)

https://mozilla.org/path
(nicht übereinstimmender Pfad)

https://mozilla.org/a
(nicht übereinstimmender Pfad)

https://mozilla.org/
(nicht übereinstimmender Pfad)

https://mozilla.org/path/?foo=1
(nicht übereinstimmender Pfad aufgrund der URL-Abfragezeichenfolge)

https://mozilla.org/*

Übereinstimmung mit HTTPS-URLs nur auf "mozilla.org", mit jedem URL-Pfad und jeder URL-Abfragezeichenfolge.

https://mozilla.org/

https://mozilla.org/path

https://mozilla.org/another

https://mozilla.org/path/to/doc

https://mozilla.org/path/to/doc?foo=1

http://mozilla.org/path
(nicht übereinstimmendes Scheme)

https://mozilla.com/path
(nicht übereinstimmender Host)

https://mozilla.org/a/b/c/

Übereinstimmung nur mit dieser URL oder dieser URL mit einem beliebigen URL-Fragment.

https://mozilla.org/a/b/c/

https://mozilla.org/a/b/c/#section1

Alles andere.

https://mozilla.org/*/b/*/

Übereinstimmung mit HTTPS-URLs, die auf "mozilla.org" gehostet sind, wobei der Pfad irgendwo in der Mitte die Komponente "b" enthält. URLs mit Abfragezeichenfolgen werden übereinstimmen, wenn die Zeichenfolge mit einem / endet.

https://mozilla.org/a/b/c/

https://mozilla.org/d/b/f/

https://mozilla.org/a/b/c/d/

https://mozilla.org/a/b/c/d/#section1

https://mozilla.org/a/b/c/d/?foo=/

https://mozilla.org/a?foo=21314&bar=/b/&extra=c/

https://mozilla.org/b/*/
(nicht übereinstimmender Pfad)

https://mozilla.org/a/b/
(nicht übereinstimmender Pfad)

https://mozilla.org/a/b/c/d/?foo=bar
(nicht übereinstimmender Pfad aufgrund der URL-Abfragezeichenfolge)

file:///blah/*

Übereinstimmung mit jeder FILE-URL, deren Pfad mit "blah" beginnt.

file:///blah/

file:///blah/bleh

file:///bleh/
(nicht übereinstimmender Pfad)

Ungültige Match-Muster

Ungültiges Muster Grund
resource://path/ Nicht unterstütztes Scheme.
https://mozilla.org Kein Pfad.
https://mozilla.*.org/ "*" im Host muss am Anfang stehen.
https://*zilla.org/ "*" im Host muss das einzige Zeichen sein oder von "." gefolgt werden.
http*://mozilla.org/ "*" im Scheme muss das einzige Zeichen sein.
https://mozilla.org:80/ Host darf keine Portnummer enthalten.
*://* Leerer Pfad: dies sollte "*://*/*" sein.
file://* Leerer Pfad: dies sollte "file:///*" sein.

Browser-Kompatibilität

BCD tables only load in the browser