来自HTACCESS网址的{_GET值

时间:2016-01-26 11:34:07

标签: php .htaccess

不言而喻,我完全不了解HTACCESS。我正在使用PHP编写一个推荐系统,虽然它在我使用HTACCESS使URL变得漂亮时停止工作,但它都可以工作。例如:

http://localhost/ref.php?referral=1

http://localhost/ref/1

现在代码可以工作了,它只是在我使用HTACCESS时停止工作,我记得从某处读取,如果我没有错,你不能使用已经通过HTACCESS的URL的_GET函数?尽管如此,我已经尝试过这个HTACCESS规则,但它似乎不起作用..它重定向,根据它告诉它在删除cookie时所做的代码,但它实际上并没有在我使用时删除cookie缩短网址。

RewriteRule ^ref/([^/]+)(|/)$ /ref.php?referral=$1

脚本的代码,如果它有助于理解问题..

    if (isset($_GET['referral']))
{
    $value = $_GET['referral']; // Let's set the cookie value
    // Drop the cookie, let it expire in an hour. 
    setcookie("HHRefCookie", $value, time()+3600);
    // Redir them to register page
    header("Location: " . WWW . "/register");
}

根据我的理解,这应该有效吗?不应该。反馈将不胜感激。并且非常感谢对正确方向的指导!

1 个答案:

答案 0 :(得分:0)

您是否查看过服务器返回的状态代码?我看不出你提供的重写规则是如何匹配你正在使用的URL模式(即我希望服务器返回404)。

尝试:

RewriteRule ^/ref/(.*)$ /ref.php?referral=$1 [L]

(如果这是Apache 2.4,则使用[END]而不是[L])