Apache URL重写以删除参数但将其发送
我目前在我的网站上使用register.php?referal=gamestand,这样当用户通过referal网站访问我的网站时,我就可以跟踪有多少玩家从那个地方注册 refereal=gamestand将使用echo$_GET['code']在注册过程中自动填写输入文本字段 问题是。。。在谷歌上,我有大量来自这些引用的链接,我想将它们301到我的register.php页面,将SEO分数合并成一个,并最终从谷歌删除这些愚蠢的register.php?code=gamestand风格的链接 我有一条重写规则。。。它删除了?code=gamestand位,但实际上并没有传递参数,可能是因为它重定向并没有发送任何内容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风格的链接 我
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不是已经是一个标题字段了吗?你需要把它作为参数传递吗?好主意。。。老实说,我不知道为什么我以前没有试过抓住这个。