繁体   English   中英

HTACCESS / PHP-在重定向到其他URL的同时重写URL

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM