Apache 2 / mod_rewrite: установка куки, затем проверка его наличия и перенаправление на цель, когда куки нет - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь заставить это работать, используя только директивы Apache 2. и mod_rewrite.

RewriteEngine on

RewriteBase /
RewriteRule .* - [CO=setcookietest:1:example.com:60:/] [C]

RewriteCond %{HTTP_COOKIE} !^.*setcookietest.*$ [NC]
RewriteRule .* /cookies.html [NC,L]

Это не работает, это приводит к внутренней ошибке сервера при обращении к этой последней директиве.

По сути, все, что я хочу сделать, - это переписать конкретную страницу, если сервер не может установить тестовый файл cookie, его значение не имеет значения.

Спасибо!

1 Ответ

0 голосов
/ 22 мая 2018

Флаги перезаписи используются внутри [ и ] (одна пара закрывающих и открывающих квадратных скобок).Причина, по которой ваш сервер вернул сообщение об ошибке 500, заключается в том, что в первом правиле вы используете двойные флажки [.....][...].

RewriteEngine on
RewriteBase /
RewriteRule .* - [CO=setcookietest:1:example.com:60:/,C]
RewriteCond %{HTTP_COOKIE} !^.*setcookietest.*$ [NC]
RewriteRule .* /cookies.html [NC,L]
...