Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache URL重写以删除参数但将其发送_Apache_Mod Rewrite - Fatal编程技术网

Apache URL重写以删除参数但将其发送

Apache URL重写以删除参数但将其发送,apache,mod-rewrite,Apache,Mod Rewrite,我目前在我的网站上使用register.php?referal=gamestand,这样当用户通过referal网站访问我的网站时,我就可以跟踪有多少玩家从那个地方注册 refereal=gamestand将使用echo$_GET['code']在注册过程中自动填写输入文本字段 问题是。。。在谷歌上,我有大量来自这些引用的链接,我想将它们301到我的register.php页面,将SEO分数合并成一个,并最终从谷歌删除这些愚蠢的register.php?code=gamestand风格的链接 我

我目前在我的网站上使用register.php?referal=gamestand,这样当用户通过referal网站访问我的网站时,我就可以跟踪有多少玩家从那个地方注册

refereal=gamestand将使用echo$_GET['code']在注册过程中自动填写输入文本字段

问题是。。。在谷歌上,我有大量来自这些引用的链接,我想将它们301到我的register.php页面,将SEO分数合并成一个,并最终从谷歌删除这些愚蠢的register.php?code=gamestand风格的链接

我有一条重写规则。。。它删除了?code=gamestand位,但实际上并没有传递参数,可能是因为它重定向并没有发送任何内容

RewriteCond %{QUERY_STRING} ^(.*)code(.*)$
RewriteRule ^(.*)$ http://localhost/mywebsite/httpdocs/register.php? [R=301,L] 
它会将register.php?code=gamestand更改为register.php,但正如我所说,$\u GET['code']现在是空的,我回到了原点


如果有人知道任何事情,感谢你的帮助。。。谢谢Dom

您可以将referer存储在会话变量中,然后重定向到
register.php
,而不使用代码。您的URL将不再包含代码,但它可以通过会话访问

session_start();
if (isset($_GET['code'])) {
  $_SESSION['code'] = $_GET['code'];
  header('Location: register.php');
  exit;
}

...

echo $_SESSION['code'];

将这些Url重定向到同一个Url可能不会将您的SEO分数合并为一个。您当前的方法很好,不要弄乱它。

HTTP Referer不是已经是一个标题字段了吗?你需要把它作为参数传递吗?好主意。。。老实说,我不知道为什么我以前没有试过抓住这个。