Ubuntu
squid url_regex 不匹配字元
我有一個 url_regex acl:^http(s)://bitbucket.org/example/*
但是,它與網址匹配:http(s)://bitbucket.org/example_test/*
這似乎沒有考慮 ^http(s)://bitbucket.org/example/* 末尾的“/”
我想將任何內容與子文件夾匹配範例進行匹配。例如:bitbucket.org/example/case_1 bitbucket.org/example/case_2 但不是,bitbucket.org/example_bad/case_3
它似乎是正則表達式的特殊混合,它沒有考慮“/”——
誰能看到這裡有什麼問題?
正如steeldriver 所說,它出於相同的原因
car*t
匹配cat
-*
表示前面的任意數量的字元,包括零。r*
匹配 and 之間的零,r
並且您 匹配 and 之間的零斜線。a``t``/*``example``_test/*
你想匹配
http(s)://bitbucket.org/example
(沒有任何子目錄)嗎?如果沒有,那很容易;只需使用^http(s)://bitbucket.org/example/
或者
^http(s)://bitbucket.org/example/.*$
如果你確實想匹配
http(s)://bitbucket.org/example
,那就有點棘手了。您需要example
位於 URL 的末尾,或者後跟一個斜杠。一些正則表達式引擎會讓你說^http(s)://bitbucket.org/example(/|$)
|
裡面(
……的)
意思是“或”。例如,grep -E
支持這個。我不知道這是否適用於 Squid。Squid 是否允許您指定多個正則表達式?如果是,請指定
^http(s)://bitbucket.org/example$
和
^http(s)://bitbucket.org/example/