2013-05-02 3 views
0

Учитывая это VCL код в Varnish 3.0.2:Regex для соответствия запроса хоста

sub vcl_recv { 
    if (req.http.host !~ "^(?i)(www|m|mobile)\.example\.com$" || req.http.host !~ "^(?i)example\.com$") { 
    error 403 "Forbidden"; 
    } 
    return(lookup); 
} 

может кто-нибудь объяснить, почему я получаю 403s на «www.example.com»?

Благодаря

ответ

3

Я не знаю, лак и его синтаксис, но я интерпретирую || быть логическим OR. Таким образом, www.example.com не соответствует второй альтернативе ==> Это правда, и вы вводите if.

Возможно, вам нужен логический И? Если оба не соответствуют действительности, то 403?

Так попробуйте:

if (req.http.host !~ "^(?i)(www|m|mobile)\.example\.com$" && req.http.host !~ "^(?i)example\.com$") { 
    error 403 "Forbidden"; 
    } 
+0

га! вот и все. большое спасибо @stema – jeremyjr

Смежные вопросы