สิทธิ์ของโฮสต์และการจับคู่สคริปต์เนื้อหาจะอิงตามชุด URL ที่กำหนดโดยการจับคู่
รูปแบบ โดยพื้นฐานแล้ว รูปแบบการจับคู่คือ URL ที่ขึ้นต้นด้วยรูปแบบที่ได้รับอนุญาต (http
, https
,
file
หรือ ftp
และที่มี "*
" ได้ อักขระ รูปแบบพิเศษ <all_urls>
ตรงกับ
URL ใดๆ ที่ขึ้นต้นด้วยรูปแบบที่ได้รับอนุญาต รูปแบบการจับคู่แต่ละรูปแบบมี 3 ส่วนดังนี้
สคีม เช่น
http
หรือfile
หรือ*
หมายเหตุ: การเข้าถึง URL ของfile
จะไม่มีผลโดยอัตโนมัติ ผู้ใช้ต้องไปที่หน้าการจัดการส่วนขยายและเลือกให้สิทธิ์เข้าถึงfile
สำหรับแต่ละส่วนขยายที่ส่งคำขอhost ตัวอย่างเช่น
www.google.com
หรือ*.google.com
หรือ*
หากรูปแบบคือfile
ไม่มีส่วน hostเส้นทาง เช่น
/*
,/foo*
หรือ/foo/bar
เส้นทางต้องอยู่ในสิทธิ์โฮสต์ แต่จะถือว่าเป็น/*
เสมอ
ต่อไปนี้คือไวยากรณ์พื้นฐาน
<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>
ความหมายของ "*
" ขึ้นอยู่กับว่าข้อมูลนั้นอยู่ในส่วนรูปแบบ โฮสต์ หรือเส้นทาง หาก
สคีม คือ *
จากนั้นระบบจะจับคู่กับ http
หรือ https
และไม่ใช่ file
, ftp
หรือ urn
หาก
host เป็นเพียง *
ก็จะจับคู่กับโฮสต์ใดก็ได้ หากโฮสต์คือ *._hostname_
โฮสต์นั้นจะตรงกับ
หรือโดเมนย่อยที่ระบุไว้ ในส่วน path แต่ละ "*
" ตรงกับ 0 รายการขึ้นไป
อักขระ ตารางต่อไปนี้แสดงรูปแบบที่ถูกต้อง
รูปแบบ | การทำงาน | ตัวอย่างของ URL ที่ตรงกัน |
---|---|---|
http://*/* | จับคู่ URL ที่ใช้รูปแบบ http | http://www.google.com/ http://example.org/foo/bar.html |
http://*/foo* | จับคู่ URL ที่ใช้รูปแบบ http ในโฮสต์ใดก็ได้ ตราบใดที่เส้นทางขึ้นต้นด้วย /foo | http://example.com/foo/bar.html http://www.google.com/foo |
https://*.google.com/foo*bar | จับคู่ URL ที่ใช้รูปแบบ https อยู่ในโฮสต์ google.com (เช่น www.google.com, docs.google.com หรือ google.com) ตราบใดที่เส้นทางเริ่มต้นด้วย /foo และลงท้ายด้วย bar | https://www.google.com/foo/baz/bar https://docs.google.com/foobar |
http://example.org/foo/bar.html | ตรงกับ URL ที่ระบุ | http://example.org/foo/bar.html |
file:///foo* | จับคู่กับไฟล์ในเครื่องที่มีเส้นทางขึ้นต้นด้วย /foo | file:///foo/bar.html file:///foo |
http://127.0.0.1/* | จับคู่ URL ที่ใช้รูปแบบ http และอยู่ในโฮสต์ 127.0.0.1 | http://127.0.0.1/ http://127.0.0.1/foo/bar.html |
*://mail.google.com/* | จับคู่ URL ที่ขึ้นต้นด้วย http://mail.google.com หรือ https://mail.google.com | http://mail.google.com/foo/baz/bar https://mail.google.com/foobar |
urn:* | จับคู่ URL ที่ขึ้นต้นด้วย urn: | urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582 urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da |
<all_urls> | จับคู่ URL ที่ใช้รูปแบบที่ได้รับอนุญาต (ดูรายการรูปแบบที่ได้รับอนุญาตได้ที่ส่วนต้นของส่วนนี้) | http://example.org/foo/bar.html file:///bar/baz.html |
ต่อไปนี้เป็นตัวอย่างบางส่วนของการจับคู่รูปแบบที่ไม่ถูกต้อง
รูปแบบไม่ถูกต้อง | เหตุผลที่แย่ |
---|---|
http://www.google.com | ไม่มีเส้นทาง |
http://*foo/bar | "*" ใน host จะต้องตามด้วย "." เท่านั้น หรือ '/' |
http://foo.*.bar/baz | หาก '*' อยู่ในโฮสต์ ค่านี้ต้องเป็นอักขระตัวแรก |
http:/bar | ไม่มีตัวคั่นรูปแบบ ("/" ควรเป็น "//") |
foo://* | รูปแบบไม่ถูกต้อง |
บางบริบทอาจไม่รองรับบางรูปแบบ