Eşleşme kalıpları

Barındırıcı izinleri ve içerik komut dosyası eşleşmesi, eşleşme kalıplarıyla tanımlanan bir URL grubuna dayanır. Eşleşme kalıbı, temelde izin verilen bir şemayla (http, https, file veya ftp) başlayan ve "*" karakterleri içerebilen bir URL'dir. <all_urls> özel kalıbı, izin verilen bir şemayla başlayan tüm URL'lerle eşleşir. Her eşleşme kalıbı 3 bölümden oluşur:

  • şema: örneğin, http veya file ya da *

    Not: file URL'lerine erişim otomatik değildir. Kullanıcı, uzantı yönetimi sayfasını ziyaret etmeli ve bunu isteyen her uzantı için file erişimini etkinleştirmelidir.
  • Ana makine: Örneğin, www.google.com, *.google.com veya *. Şema file ise ana makine bölümü yoktur.

  • path: Örneğin, /*, /foo* veya /foo/bar. Yol, ana makine izninde bulunmalıdır ancak her zaman /* olarak değerlendirilir.

Temel söz dizimi şöyledir:

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

"*" işaretinin anlamı, şema, ana makine veya yol bölümünde olup olmadığına bağlıdır. Şema * ise http veya https ile eşleşir, file, ftp veya urn ile eşleşmez. Ana makine yalnızca * ise herhangi bir ana makineyle eşleşir. Ana makine *._hostname_ ise belirtilen ana makineyle veya alt alan adlarından herhangi biriyle eşleşir. Yol bölümünde her "*", 0 veya daha fazla karakterle eşleşir. Aşağıdaki tabloda bazı geçerli desenler gösterilmektedir.

KalıpNe işe yarar?Eşleşen URL örnekleri
http://*/*http şemasını kullanan tüm URL'lerle eşleşir.http://www.google.com/
http://example.org/foo/bar.html
http://*/foo*Yol /foo ile başladığı sürece herhangi bir ana makinede http şemasını kullanan tüm URL'lerle eşleşir.http://example.com/foo/bar.html
http://www.google.com/foo
https://*.google.com/foo*barYol /foo ile başlayıp bar ile bittiği sürece, https şemasını kullanan ve google.com ana makinesinde (ör. www.google.com, docs.google.com veya google.com) bulunan tüm URL'lerle eşleşir.https://www.google.com/foo/baz/bar
https://docs.google.com/foobar
http://example.org/foo/bar.htmlBelirtilen URL ile eşleşir.http://example.org/foo/bar.html
file:///foo*Yolu /foo ile başlayan tüm yerel dosyalarla eşleşir.file:///foo/bar.html
file:///foo
http://127.0.0.1/*http şemasını kullanan ve 127.0.0.1 ana makinesinde bulunan tüm URL'lerle eşleşir.http://127.0.0.1/
http://127.0.0.1/foo/bar.html
*://mail.google.com/*http://mail.google.com veya https://mail.google.com ile başlayan tüm URL'lerle eşleşir.http://mail.google.com/foo/baz/bar
https://mail.google.com/foobar
urn:*urn: ile başlayan tüm URL'lerle eşleşir.urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582
urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da
<all_urls>İzin verilen bir şemayı kullanan tüm URL'lerle eşleşir. (İzin verilen şemaların listesi için bu bölümün başına bakın.)http://example.org/foo/bar.html
file:///bar/baz.html

Aşağıda, geçersiz kalıp eşleşmelerine bazı örnekler verilmiştir:

Kötü desenNeden kötü?
http://www.google.comYol yok
http://*foo/barAna makinedeki "*" yalnızca "." veya "/" ile takip edilebilir.
http://foo.*.bar/baz Ana makinede "*" varsa ilk karakter olmalıdır.
http:/barŞema ayırıcı eksik ("/" yerine "//" olmalıdır)
foo://*Geçersiz şema

Bazı şemalar tüm bağlamlarda desteklenmez.