Переопределить или сбросить набор переменных с помощью SetEnvIfNoCase

Я использую следующий код в моем httpd.conf, чтобы заблокировать некоторые нежелательные старые браузеры

SetEnvIfNoCase User-Agent (msie\s7) blocked=old

Order Allow,Deny
Allow from all
Deny from env=blocked

Однако следующий пользовательский агент не должен блокироваться (Microsoft Office использует этот пользовательский агент):

mozilla/4.0 (compatible; msie 7.0; windows nt 6.1; win64; x64; trident/7.0; .net clr 2.0.50727; slcc2; .net clr 3.5.30729; .net clr 3.0.30729; media center pc 6.0; .net4.0c; .net4.0e; ms-office; msoffice 16)

Вопрос: Как мне переопределить или сбросить набор переменных с помощью SetEnvIfNoCase?

Будет ли это работать?

SetEnvIfNoCase User-Agent (msoffice) blocked=0

1 ответ

Решение

Восклицательный знак удалит переменную, если она уже определена:

SetEnvIfNoCase User-Agent (msoffice) !blocked

Источник: https://httpd.apache.org/docs/2.4/mod/mod_setenvif.html

Другие вопросы по тегам