Как удалить cookie в Apache
Мне нужно удалить cookie из HTTP-запроса, который попадает на сервер. Выполнение этого на клиенте (который пишет этот файл cookie) или на сервере (который читает) не является вариантом. У меня есть Apache 2.0, который запрашивает запросы между клиентом и сервером, поэтому я надеялся удалить cookie прямо в Apache, используя mod_rewrite.
Мой вопрос: есть ли способ удалить определенный файл cookie из HTTP-запроса с помощью mod_rewrite?
Если невозможно удалить только один файл cookie, то в качестве последнего средства удалить все файлы cookie из запроса?
Я открыт для других предложений о том, как это сделать, если mod_rewrite не подходит для этой задачи.
Ответы
Ответ 1
Apache mod_rewrite
позволяет манипулировать URL-адресами, но не заголовками HTTP, однако 'mod_headers' позволит вам это сделать.
Итак, вы можете использовать:
RequestHeader unset Cookie
Это приведет к удалению всех файлов cookie из запроса. Я не уверен, что можно удалить только конкретный файл cookie, используя эту технику.
В качестве альтернативы вы можете остановить отправку файлов cookie клиенту, используя:
Header unset Set-Cookie
если это более подходит.
Ответ 2
Вы можете управлять определенными куки файлами, используя следующие инструкции в конфигурациях обратного прокси-сервера apache:
Чтобы удалить какой-либо конкретный файл cookie, вы можете использовать:
' Header add Set-Cookie" ANY_COOKIE =' '; expires =' SOME_DATE_IN_PAST '; Max-Age = 0; Path = COOKIE_PATH"
Указав прошлую дату, вы сообщите обозревателю, что файл cookie истек, и браузер отбросит файл cookie.
Чтобы добавить любой куки файл, который вы можете использовать:
' Заголовок добавить Set-Cookie" ANY_COOKIE =' ANY_VALUE '; expires =' SOME_FUTURE_DATE '; Path = COOKIE_PATH"'
Убедитесь, что вы указали некоторую будущую дату. Если вы не укажете дату, cookie будет рассматриваться как файл cookie сеанса.
Попробуйте использовать следующее для удаления определенного файла cookie из запроса:
"RequestHeader add cookie" ANY_COOKIE = ''; expires = 'SOME_PAST_DATE'; Path = COOKIE_PATH "
Ответ 3
С Apache > 2.2.4, вы могли бы использовать:
RequestHeader edit Cookie "^(.*?)ANY_COOKIE=.*?;(.*)$" $1$2
Ответ 4
Я использую это, чтобы отключить все файлы cookie (полезно для статического содержимого)
Header unset Cookie
Header unset Set-Cookie