【问题标题】:I need to write a url that is 301'd to a session variable我需要将 301 的 url 写入会话变量
【发布时间】:2012-04-24 03:31:51
【问题描述】:

场景:

我有一个链接

example/directory/go.php

我正在 301 将该链接重定向到

example/go.php

我使用会话变量来跟踪用户的路径。没有在 url 中放置任何变量,有没有办法我仍然可以在用户访问的会话中跟踪

example/directory/go.php 

或者更确切地说是打算去那里,但显然是 301'd to

example/go.php?

现在当我 var_dump 我的会话变量时,它总是将他们访问的最后一页显示为

example/go.php. 

我想这是有道理的,因为它是用 mod_rewrite 重定向的,但我只是想看看是否仍然可以在会话变量中或通过其他方式看到重定向的链接。

【问题讨论】:

    标签: php .htaccess mod-rewrite


    【解决方案1】:

    使用 mod_rewrite,您可以将 cookie 设置为之前的 URL 作为值,然后在最终的 PHP 脚本中获取 cookie 值。

    【讨论】:

    • 这听起来很合理,但我该怎么做呢? php是否有办法告诉链接正在被重写,然后将其写入会话/cookie?或者这是我必须在 htaccess 中做的事情?感谢您的帮助。
    • 由于 301 重定向发生在 .htaccess 中,所以它只能在 .htaccess 中。 Refer official mod_rewrite guide here and search for cookie
    • 好的,所以我在重写规则中创建了这样的 cookie [CO=tracker:yes:example.com:1000:/]。现在,我如何使用我的 php 脚本访问该 cookie?
    • 只需echo $_COOKIE["tracker"]; 就应该在 PHP 代码中表现出色。也检查这个文档:w3schools.com/php/php_cookies.asp
    • hmmm...我不能正确设置 cookie:RewriteRule ^example/directory/go\.php$ example.com/go.php [R=301,L] - [CO=tracker:yes: .example.com:1440:/] 我首先需要一个单独的规则吗:RewriteRule ^example/directory/go\.php$ - [CO=tracker:yes:.example.com:1440:/] 虽然两者似乎都不起作用.再次感谢。
    猜你喜欢
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    相关资源
    最近更新 更多