Правильный способ заблокировать сайт, если cookie отсутствует apache 2.4
Я использую Apache 2.4.12 (Ubunutu 15.10) в качестве прокси oauth2 за приложением узла. Приложение отправляет множество неаутентифицированных запросов перед входом в систему, поскольку оно не знает, что оно не аутентифицировано (оно не знает / не заботится о прокси-сервере), что создает множество больших файлов cookie, которые могут вызвать проблемы.
Что я хотел бы сделать, так это сказать, что определенный cookie не существует (mod_auth_openidc_session) - что означает, что он еще не авторизован - блокировать все запросы к моему серверу. Пока у меня есть это, но я не уверен, что это правильно (так как условие требует времени для воспроизведения):
RewriteEngine On
RewriteCond %{HTTP_COOKIE} !mod_auth_openidc_session
RewriteRule .*my.server.com.* [F]
Это делает то, что я хочу?
Блокируйте все запросы к http(s)://my.server.com/ или http(s)://my.server.com/login и т. Д., Если отсутствует файл cookie mod_auth_openidc_session.
1 ответ
Ваша общая цель кажется мне странной, но в отношении вашего рецепта переписывания RewriteRule
Директива неверна. Общий синтаксис RewriteRule Pattern Substitution [flags]
где Pattern идет по пути в URL-адресе, но так как ваше соответствие хорошо по правилу Cond перезаписи, вы можете просто захотеть RewriteRule (.*) $1 [F]
, Если вы хотите сопоставить только один хост, то для этого нужно другое правило RewriteCond HTTP_HOST
,