Я использую 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.
Ваша общая цель кажется мне странной, но что касается вашего рецепта перезаписи, RewriteRule
директива неверна. Общий синтаксис: RewriteRule Pattern Substitution [flags]
, где шаблон идет против пути в URL-адресе, но, поскольку ваше соответствие соответствует правилу rewrite Cond, вы можете просто захотеть RewriteRule (.*) $1 [F]
. Если вы хотите сопоставить только один хост, то для сопоставления требуется другое правило RewriteCond. HTTP_HOST
.