不言而喻,我完全不了解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");
}
根据我的理解,这应该有效吗?不应该。反馈将不胜感激。并且非常感谢对正确方向的指导!
答案 0 :(得分:0)
您是否查看过服务器返回的状态代码?我看不出你提供的重写规则是如何匹配你正在使用的URL模式(即我希望服务器返回404)。
尝试:
RewriteRule ^/ref/(.*)$ /ref.php?referral=$1 [L]
(如果这是Apache 2.4,则使用[END]而不是[L])