Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 伪造';路径';通过.htaccess/javascript/或其他方式访问cookie? 背景_Php_Javascript_.htaccess_Matomo_Mod Rewrite - Fatal编程技术网

Php 伪造';路径';通过.htaccess/javascript/或其他方式访问cookie? 背景

Php 伪造';路径';通过.htaccess/javascript/或其他方式访问cookie? 背景,php,javascript,.htaccess,matomo,mod-rewrite,Php,Javascript,.htaccess,Matomo,Mod Rewrite,我有php/js软件(),它设置了一个cookie来跟踪对站点的访问 我们的站点(即非Piwik)的设置是为了将所有URL(资源除外)写回/public/index.php 这样,我们的每个用户都会得到一个唯一的URL,例如 。。。等 为了在Piwik中跟踪每个用户URL,我需要将cookie中的路径设置为Apache映射到实际目录的路径 因为我们没有每个用户的实际目录,所以我们不能这样做 最后,我们继续在.HTACCESS中使用,告诉Apache我们认为用户的URL是它自己的目录。 但是,

我有php/js软件(),它设置了一个cookie来跟踪对站点的访问

我们的站点(即非Piwik)的设置是为了将所有URL(资源除外)写回/public/index.php

这样,我们的每个用户都会得到一个唯一的URL,例如

。。。等

为了在Piwik中跟踪每个用户URL,我需要将cookie中的路径设置为Apache映射到实际目录的路径

因为我们没有每个用户的实际目录,所以我们不能这样做

最后,我们继续在.HTACCESS中使用,告诉Apache我们认为用户的URL是它自己的目录。 但是,这还不够,因为似乎没有一种方法可以在不硬编码“base”的情况下使用RewriteBase

问题 我可以在.htaccess中执行类似操作吗?他说我不能这样做。

为了确保cookie的“路径”设置为用户的URL而不仅仅是“/”,我还有哪些其他选择

我目前拥有的 /contains中的.htaccess

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

RewriteRule ^(.*)$             /public/index.php5  [L]
然后/public中的.htaccess包含

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

RewriteRule ^(.*)$             /public/index.php5  [L]
请注意,对于已移动的路径等,这两种方法在开始时都有其他规则

谢谢你的帮助

我试过的 在JS Piwik对象上调用.setCookiePath(),如中所建议。例如,对于URL,调用.setCookiePath('/user1')实际上并不设置cookie的路径

向URL添加尾随斜杠,然后调用.setCookiePath()。例如,调用.setCookiePath('/user1')的URL没有设置cookie的路径

相关问题
-不幸的是,答案没有表明我是否可以使用当前路径作为基础。

使用
mod\u rewrite
您不能这样做。Apache和mod_rewrite与Cookie无关(至少就Piwik而言)。这不是与Apache相关的问题,而是Piwik如何设置cookie。如果您使用的是Piwik JavaScript跟踪器,请查看“如果您跟踪不同Piwik网站中的一个域子目录或页面”部分

基本上,您需要使用
setCookiePath
函数,无论在哪里设置JavaScript,都要使用PHP来填充路径:

Javascript:

tracker.setCookiePath('/user1');
.htaccess
中添加尾随斜杠

将此添加到其他规则之上:

RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://example.org/$1/ [L,R=301]

感谢您提供的信息-我已链接到问题中的线程,这表明在该路径上设置cookie之前,必须有一个实际的目录(或者用Apache伪造它)。我尝试过setCookiePath(),但没有成功(有关更多详细信息,请参阅该线程)。@Jess Telford-我已经看过该线程了。它建议您使用Apache“伪造”一个文件夹,您已经在
.htaccess
文件中这样做了。您可能需要在URL中添加一个尾随斜杠以使其正常工作(即)。如果您的
.htaccess
缺少尾随斜杠,您可以更改尾随斜杠,如果更改链接的生成方式(或者如果用户直接访问链接)是不现实的,则可以添加尾随斜杠。不幸的是,尾随斜杠没有任何区别:(对投票结果感到好奇吗?我希望得到反馈,说明这可能是一个更具主题性的问题:)我认为你也需要设置cookie域,大多数浏览器需要域,没有域就不能设置cookie cookie设置正确,但是cookie的“路径”不正确。Piwik在其JS代码中设置域,调用
。setCookieDomani()
不会改变任何东西。