如何在地址栏屏蔽转介网址


How to mask referral URLs in address bar

假设我有一个推荐URL http://www.example.com/r?ref=86745348,我想完全隐藏r?ref=86745348部分URL来自我的访问者。

我试过这个方法:

<?php
header("Location: http://www.example.com/r?ref=86745348");
exit;
?>

,我试过像TinyURL这样的url缩短器。

我所有的尝试都将URL隐藏在超链接中,但不会将URL隐藏在用户浏览器的地址栏中。

无论我怎么做,一旦用户进入推荐页面,他们就可以看到推荐链接,删除它,然后骗走我的推荐。

所以我的问题是,我如何从地址栏隐藏推荐链接?

你不能。

如果你的商业计划依赖于欺骗用户,让他们不知道你正在收取推荐费,那么你需要退后一步,重新评估你在做什么。

我同意@duskwuff。这是错误的……但这只是知识范围。这是可行的。用下面的代码创建一个HTML页面,并将用户发送到该页。

<iframe src="http://www.example.com" width="100%" height="1024"></iframe>

IDEA:在页面B中加载页面a,使用完整的页面iframe来隐藏页面a的url

那么,第一个问题必须是——究竟是谁在监控这些作为引用的参数?我假设它不是您的服务器和脚本正在解析$_GET['ref']参数,不是吗?

也许如果服务器"计数"引用实际上使用$_REQUEST参数,而不是普通的"可视"$_GET参数,那么您可能能够使用$_POST,因此对用户"隐藏"参数。

对新的和改进的搜索进行快速搜索,得到了处理$_POST数据重定向的有用答案。

你试图实现的逻辑只能在超链接的接收端实现-你不能欺骗浏览器访问一个URL,但告诉用户他们在另一个URL上,因为这将是一个巨大的安全风险。

如果你链接到的服务以一种合理的方式实现了推荐跟踪,那么一旦用户登陆他们的网站,就会植入一个cookie,这样删除查询字符串就不会对如何跟踪推荐产生影响。目标站点甚至可以自己整理URL,将用户重定向到没有查询字符串的版本,但是,这是只有他们才能实现的。

如果目标网站以这样一种方式实现,即删除查询字符串足以掠夺您的推荐费,那么是他们在掠夺您,而不是用户。

我们可以通过使用浏览器历史记录设置来做到这一点。以下是在解决方案

中帮助我的代码片段
<script>
        $(document).ready(function () {
            //Masking the Url
            var loc = window.location;
            var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/') + 1);
            var absolutepath = loc.href.substring(0, loc.href.length - ((loc.pathname + loc.search + loc.hash).length - pathName.length));
            window.history.pushState("Object Or String", "Title", absolutepath);
        });
   </script>

复制并粘贴下面的代码到你的。htaccess文件中:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^'.]+)$ $1.php [NC,L]

很简单