Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Übereinstimmungsmuster

Übereinstimmungsmuster sind eine Möglichkeit, Gruppen von URLs zu spezifizieren: Ein Übereinstimmungsmuster entspricht einer bestimmten Menge von URLs. Sie werden an einigen Stellen in WebExtensions-APIs verwendet, insbesondere um anzugeben, in welche Dokumente Inhalts-Skripte geladen werden sollen, und um anzugeben, welchen URLs webRequest-Listener hinzugefügt werden sollen.

APIs, die Übereinstimmungsmuster verwenden, akzeptieren normalerweise eine Liste von Übereinstimmungsmustern und führen die entsprechende Aktion aus, wenn die URL mit einem der Muster übereinstimmt. Siehe zum Beispiel den content_scripts Schlüssel in manifest.json.

Struktur eines Übereinstimmungsmusters

Hinweis: Einige Browser unterstützen bestimmte Schemas nicht. Überprüfen Sie die Browser-Kompatibilitätstabelle für Details.

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

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

scheme

Der scheme-Bestandteil kann eine von zwei Formen annehmen:

Form Treffer
* 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 Schema.

host

Der host-Bestandteil kann eine der folgenden Formen annehmen:

Form Treffer
* Jeder Host.
*. gefolgt von einem Teil des Hostnamens, optional inklusive eines Ports. Der angegebene Host (und Port) und alle seine Subdomains.
Ein vollständiger Hostname, ohne Wildcards, optional inklusive eines Ports. Nur der Host (und Port).

Hinweis: Firefox unterstützt aufgrund von (Firefox Bug 1362809) und (Firefox Bug 1468162) nicht die Einbindung einer Portnummer.

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

Beachten Sie, dass das Wildcard-Zeichen nur am Anfang erscheinen darf.

path

Der path-Bestandteil muss mit einem / beginnen.

Danach kann es jede Kombination aus dem *-Wildcard und allen Zeichen enthalten, die in URL-Pfaden oder Abfragezeichenfolgen erlaubt sind. Im Gegensatz zu host kann der path-Bestandteil das *-Wildcard in der Mitte oder am Ende enthalten, und das *-Wildcard kann mehrmals erscheinen.

Der Wert für den path stimmt mit dem String überein, der der URL-Pfad plus der URL-Abfragezeichenfolge ist. Dies schließt das ? zwischen den beiden ein, falls 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 Übereinstimmungsmustern wie ["*://*/*foo.bar", "*://*/*foo.bar?*"] verwenden. Das ?* ist notwendig, statt nur bar*, um das Ende * als Anwendung auf die URL-Abfragezeichenfolge zu verankern und nicht auf einen Teil des URL-Pfads.

Weder der URL-Fragment-Identifikator noch das #, das ihm vorangeht, werden als Teil des path betrachtet und werden beim Mustermatching ignoriert. Ein Übereinstimmungsmuster, das # enthält, wird mit keiner URL übereinstimmen.

<all_urls>

Der spezielle Wert <all_urls> stimmt mit allen URLs unter jedem der unterstützten Schemata überein: das heißt "http", "https", "ws", "wss", "ftp", "data" und "file".

Beispiele

Muster Beispiele für Übereinstimmungen Beispiele für 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 Schema)

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

*://*/*

Ü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 Schema)

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

*://*.mozilla.org/*

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

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 Schema)

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 werden.

http://mozilla.org/

https://mozilla.org/

ws://mozilla.org/

wss://mozilla.org/

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

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

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

https://mozilla.org:8080/

Übereinstimmung mit allen HTTPS-URLs, die auf "mozilla.org/" auf Port 8080 gehostet werden. Hinweis: Ports werden in Chrome unterstützt, nicht in Firefox.

https://mozilla.org:8080/

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

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

ftp://mozilla.org/

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

ftp://mozilla.org

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

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 Schema)

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-Abfragezeichenkette)

https://*/path/

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

https://mozilla.org/path/

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

https://something.com/path/

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

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-Abfragezeichenkette)

https://mozilla.org/*

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

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 Schema)

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

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

Übereinstimmung nur mit dieser URL oder dieser URL mit beliebigem 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 werden und deren Pfad irgendwo in der Mitte eine Komponente "b" enthält. Wird URL mit Abfragezeichenfolgen entsprechen, 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-Abfragezeichenkette)

file:///blah/*

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

file:///blah/

file:///blah/bleh

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

Ungültige oder nicht übereinstimmende Muster

Muster Problem Grund
resource://path/ Ungültig Nicht unterstütztes Schema.
https://mozilla.org Ungültig Kein Pfad.
https://www.mozilla.org/#section1 Nicht übereinstimmend Enthält ein Referenzfragment: Die URL, mit der das Muster übereinstimmt, hat jedes Referenzfragment entfernt, bevor es übereinstimmt.
https://mozilla.*.org/ Ungültig "*" im Host muss am Anfang stehen.
https://*zilla.org/ Ungültig "*" im Host muss das einzige Zeichen sein oder von "." gefolgt werden.
http*://mozilla.org/ Ungültig "*" im Schema muss das einzige Zeichen sein.
*://* Ungültig Leerer Pfad: Dies sollte *://*/* sein.
file://* Ungültig Leerer Pfad: Dies sollte file:///* sein. file://* wird akzeptiert, wenn es in host_permissions in Chrome erklärt wird, was den Eintrag automatisch zu file:///* korrigiert.

Browser-Kompatibilität