Подделка "пути" куки - через .htaccess / javascript / или иначе?

Предыстория

У меня есть php/js-программа (Piwik), которая устанавливает cookie для отслеживания посещений сайта.

Наш сайт (т.е. не Piwik) настроен так, что все URL (кроме ресурсов) записываются обратно в /public/index.php.

Таким образом, каждый наш пользователь получает уникальный URL, например,

http://www.example.com/user1

http://www.example.com/user2

... и т.д.

Чтобы я мог отслеживать каждый из этих пользовательских URL в Piwik, было предложено, что мне нужно установить путь в cookie таким образом, чтобы Apache сопоставил его с реальным каталогом.

Поскольку у нас нет реальных каталогов для каждого из наших пользователей, мы не можем этого сделать.

Наконец, мы переходим к использованию RewriteBase в .htaccess, чтобы сказать Apache, что мы считаем URL пользователя его собственным каталогом.

Этого недостаточно, однако, поскольку не существует способа использовать RewriteBase без жесткого кодирования 'base'.

Вопрос

Могу ли я сделать что-то подобное в моем .htaccess? Ответ Франсуа Дешена говорит, что я не могу этого сделать.

RewriteCond ^([^/]*)(/.*)?
RewriteBase %1

Какие еще альтернативы у меня есть для обеспечения того, чтобы "путь" cookie был установлен как URL пользователя, а не просто '/'?

Что у меня есть на данный момент

.htaccess в / содержит;

RewriteRule ^(.*)$ /public/$1 [L]

Затем .htaccess в /public содержит;

RewriteRule ^index\.php5/(.*)$ -                   [L]
RewriteRule ^index\.php5?(.*)$ -                   [L]
RewriteRule ^index\.php5$      -                   [L]

RewriteRule ^(.*)$             /public/index.php5  [L]

Обратите внимание, что оба эти правила имеют другие правила в начале для путей, которые были перемещены, и т.д.

Спасибо за любую помощь!

Что я пробовал

Вызывать .setCookiePath() на объекте JS Piwik, как предлагается в документации Piwik. Например, для URL http://www.example.com/user1 вызов .setCookiePath('/user1') на самом деле не устанавливает путь к cookie.

Добавление косой черты к URL, а затем вызов .setCookiePath(). Например, URL http://www.example.com/user1/ с последующим вызовом .setCookiePath('/user1') не устанавливает путь к cookie.

Похожие вопросы

В mod_rewrite можно ли указать RewriteBase в RewriteCond? - К сожалению, в ответе не указано, можно ли использовать текущий путь в качестве базы.

8
задан Community 23 May 2017 в 12:13
поделиться