Думаете нельзя? :) Можно! Я тоже раньше думал, что установить куку через .htaccess нельзя, а можно только с помощью PHP или JS. Но нет. Вариант через .htaccess всё-таки есть, и это очень хорошо!
Сопоставляя изучение документации с великим методом тыка (естественно, научного!), пришёл к выводу, что делается это примерно так:
То есть через рерайт. Условия редиректа могут быть и другие, конечно же. Но смысл в том, что делаем редирект и в флаге прописываем, что для новой загрузки устанавливаем cookie.
В принципе, на этом всё.
Теперь не по теме, но сюда же добавлю, что в зависимости от cookie можно установить и переменную mod_setenvif, например:
Но это сработает именно для перезагрузки после редиректа. А если надо установить AllowGroup уже и для этой загрузки, можно использовать атрибут Request_URI:
Что касается установки через Query_String - для редиректа это сработает. Но в качестве атрибута SetEnvIf это не работает. По крайней мере на сервере, где я тестил. Думаю, есть зависимость от версии mod_setenvif.
Полезные ссылочки:
Apache Module mod_setenvif;
Apache Module mod_rewrite (там есть таблица со всеми флагами для RewriteRule);
RewriteRule Flags (тут можно найти про флаг CO, он же cookie).
Сопоставляя изучение документации с великим методом тыка (естественно, научного!), пришёл к выводу, что делается это примерно так:
RewriteCond %{REQUEST_URI} externalAccessAllow
RewriteRule .* https://%{SERVER_NAME}? [R=301,L,CO=externalAccess:allow:%{SERVER_NAME}:1440:/]
То есть через рерайт. Условия редиректа могут быть и другие, конечно же. Но смысл в том, что делаем редирект и в флаге прописываем, что для новой загрузки устанавливаем cookie.
В принципе, на этом всё.
Теперь не по теме, но сюда же добавлю, что в зависимости от cookie можно установить и переменную mod_setenvif, например:
SetEnvIfNoCase Cookie "externalAccess=allow" AllowGroup
Но это сработает именно для перезагрузки после редиректа. А если надо установить AllowGroup уже и для этой загрузки, можно использовать атрибут Request_URI:
SetEnvIfNoCase Request_URI externalAccessAllow AllowGroup
Что касается установки через Query_String - для редиректа это сработает. Но в качестве атрибута SetEnvIf это не работает. По крайней мере на сервере, где я тестил. Думаю, есть зависимость от версии mod_setenvif.
Полезные ссылочки:
Apache Module mod_setenvif;
Apache Module mod_rewrite (там есть таблица со всеми флагами для RewriteRule);
RewriteRule Flags (тут можно найти про флаг CO, он же cookie).
Комментариев нет:
Отправить комментарий