Правильный способ заблокировать сайт, если 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,

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