[英]How to mask referral URLs in address bar
假設我有一個引薦網址http://www.example.com/r?ref=86745348 ,我想向訪問者完全隱藏URL的r?ref = 86745348部分。
我已經嘗試過這種方法:
<?php
header("Location: http://www.example.com/r?ref=86745348");
exit;
?>
並且我嘗試了諸如TinyURL之類的網址縮短程序。
我所有的嘗試都將URL隱藏在超鏈接中,但沒有將URL隱藏在用戶瀏覽器的地址欄中。
不管我做什么,只要用戶進入了引薦頁面,他們都可以看到引薦鏈接,將其刪除並欺騙我。
所以我的問題是,如何隱藏地址欄中的引薦鏈接?
你不能
如果您的業務計划依賴於誘使用戶不意識到您要收取推薦費,則需要退后一步並重新評估您的工作。
我同意@duskwuff。 這是錯誤的。。。但是只是為了知識范圍。 這將起作用。 使用以下代碼創建一個HTML頁面,並將用戶定向到該頁面。
<iframe src="http://www.example.com" width="100%" height="1024"></iframe>
想法:使用完整的頁面iframe將頁面A加載到頁面B內以隱藏頁面A的網址
您試圖實現的邏輯只能在超鏈接的接收端實現-您不能欺騙瀏覽器訪問一個URL,而是告訴用戶它們在另一個URL上,因為這將帶來巨大的安全風險。
如果您鏈接到的服務以明智的方式實現了引用跟蹤,則只要用戶登陸他們的網站,便會植入cookie,因此刪除查詢字符串不會對引用的跟蹤產生影響。 目標站點甚至可以自己整理URL,將用戶重定向到不帶查詢字符串的版本,但這又是他們只能實現的目標。
如果目標站點的實現方式是刪除查詢字符串足以搶走您的介紹費,那是他們在搶奪您而不是用戶。
我們可以做到這一點的一種方法是使用Broswer歷史記錄設置。 以下是對我的解決方案有幫助的代碼段
<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]
很簡單
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.