[英]HTACCESS / PHP - Re-write URL while re-directing to a different URL
我正在创建带有引荐方案的网站,引荐网址应为http://example.com/123456
我想将URL显示为简单的http://example.com/
但仍捕获123456
并提供引荐点。
.htaccess mod_rewrite是否可以做到这一点? 就像是
RewriteRule ^([0-9]+) ?ref=$1 [L]
可以转发URL,但是有没有办法在这里重定向并在地址栏中显示http://example.com/
,而没有引用代码?
PHP标头显然有可能,但是我不希望尽可能不要使用它。
由于HTTP是无状态协议,因此仅使用RewriteModule不可能以简单的方式实现。 如果删除引荐ID并重定向用户,则在第二个请求中您将不再知道该ID。
因此,您必须将ID保存在cookie或PHP会话中,然后再使用Location标头重定向用户。
htaccess
RewriteRule ^([0-9]+) index.php?ref=$1 [L]
index.php
if (isset($_GET["ref"])) {
setcookie("refid", $_GET["ref"]);
header("Location: http://example.com/");
exit;
}
if (isset($_COOKIE["refid"])) {
echo "You came from ref id: $_COOKIE[refid]";
} else {
echo "You came without a ref id.";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.