背景
我有 php/js 软件 ( Piwik ),它设置了一个 cookie 来跟踪对该站点的访问。
我们的站点(即不是 Piwik)设置为所有 URL(资源除外)都写回 /public/index.php。
这样,我们的每个用户都会获得一个唯一的 URL,例如;
... ETC
为了让我在 Piwik 中跟踪每个用户 URL,建议我需要将 cookie 中的路径设置为 Apache 映射到实际目录的路径。
由于我们没有每个用户的实际目录,我们不能这样做。
最后,我们继续使用.htaccess 中的RewriteBase来告诉 Apache 我们认为用户的 URL 是它自己的目录。
然而,这还不够,因为似乎没有一种方法可以在不硬编码“基础”的情况下使用 RewriteBase。
问题
我可以在我的 .htaccess 中做这样的事情吗? Francois Deschenes 的回答说我不能这样做。
RewriteCond ^([^/]*)(/.*)?
RewriteBase %1
我还有哪些其他替代方法可以确保将 cookie 的“路径”设置为用户的 URL 而不仅仅是“/”?
我目前拥有的
/ 中的 .htaccess 包含;
RewriteRule ^(.*)$ /public/$1 [L]
然后 /public 中的 .htaccess 包含;
RewriteRule ^index\.php5/(.*)$ - [L]
RewriteRule ^index\.php5?(.*)$ - [L]
RewriteRule ^index\.php5$ - [L]
RewriteRule ^(.*)$ /public/index.php5 [L]
请注意,对于已移动的路径等,这两者在开头都有其他规则。
感谢您的任何帮助!
我试过的
按照Piwik 文档中的建议,在 JS Piwik 对象上调用 .setCookiePath()。例如,对于 URL http://www.example.com/user1,调用 .setCookiePath('/user1') 实际上不会设置 cookie 的路径。
向 URL添加尾部斜杠,然后调用 .setCookiePath()。例如,URL http://www.example.com/user1/然后调用 .setCookiePath('/user1') 不会设置 cookie 的路径。
相关问题
使用 mod_rewrite 我可以在 RewriteCond 中指定 RewriteBase 吗?- 不幸的是,答案并没有表明我是否可以使用当前路径作为基础。