2015-10-13 5 views
0

Я новичок в правилах VCL. Я хочу, чтобы специальные страницы не кэшировались лаком.Как исключить специальные страницы из кэша (лак)?

Что именно нужно сделать, это исключить все адреса из кэширования, которые включают определенную строку запроса «запрос = (число от 1 до 100)»

Этот код работает только для одного конкретного запроса.

sub vcl_recv { 
    # don't cache these special pages 
    if (req.url ~ "query=100") { 
      return(pass); 
    } 
} 

Я просто хочу быть уверенным, что это правило должно работать на весь диапазон от 1 до 100, верно?

sub vcl_recv { 
    # don't cache these special pages 
    if (req.url ~ "query=[0-9]") { 
      return(pass); 
    } 
} 

или мне это нужно сделать так?

sub vcl_recv { 
    # don't cache these special pages 
    if (req.url ~ "query=1||query=2||...||query=99||query=100") { 
      return(pass); 
    } 
} 

ответ

0

Я не знаю, если лак поддерживает фигурные скобки, если это произойдет, вы должны сделать что-то вроде:

sub vcl_recv { 
    # don't cache these special pages 
    if (req.url ~ "query=([0-9]{1,2}|100)") { 
    return(pass); 
    } 
} 

Кстати, это регулярное выражение соответствует «запрос = 990». Я не знаю, как ваш url составлен, но вы должны добавить что-то, чтобы избежать этого (если вам действительно нужно).

Например, если есть другие Титулы:

sub vcl_recv { 
    # don't cache these special pages 
    if (req.url ~ "query=([0-9]{1,2}|100)&") { 
    return(pass); 
    } 
} 

Или в случае, если это последние пары в URL:

sub vcl_recv { 
    # don't cache these special pages 
    if (req.url ~ "query=([0-9]{1,2}|100)$") { 
    return(pass); 
    } 
} 
+0

Лак с использованием библиотеки PCRE. – Doomsday

+0

Спасибо за информацию. Регулятор Perl поддерживает фигурные скобки :) – Redithion

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

  • Нет связанных вопросов^_^