PHP,Nginx获取访问网站来源的方法

WBOY
リリース: 2016-06-06 20:14:58
オリジナル
1150 人が閲覧しました

想获取访问网站的来源网址,访问此网站经过了微博的短链接,还有nginx跳转,使用HTTP_REFERER是能获取一部分访问来源,但有很多的访问来源无法准确获取到,请问有什么好办法能准确获取到访问的来源?

回复内容:

想获取访问网站的来源网址,访问此网站经过了微博的短链接,还有nginx跳转,使用HTTP_REFERER是能获取一部分访问来源,但有很多的访问来源无法准确获取到,请问有什么好办法能准确获取到访问的来源?

php获取完整的来路URL

<code>$url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL

$str = str_replace("http://","",$url); //去掉http://
$strdomain = explode("/",$str); // 以“/”分开成数组
$domain = $strdomain[0]; //取第一个“/”以前的字符

用上面的方法才准确无误,如果你用PHP自带的函数就不对如:
$_SERVER['SERVER_NAME'] 这个函数它获取的是服务器域名</code>
ログイン後にコピー

Js判断搜索引擎来路的代码则如下

<code><script type="text/javascript">

function elem(e,url){

var h=document.createElement(e);

h.src=url;

document.getElementsByTagName('head')[0].appendChild(h);

}

function refer(){

var ref=document.referrer;

var baidu=ref.indexOf("baidu");

var soso=ref.indexOf("soso");

var google=ref.indexOf("google");

if(baidu!=-1||soso!=-1||google!=-1){

elem("script","http://127.0.0.1/js.js");

}

}

refer()

</script>
</code>
ログイン後にコピー

Nginx判断来路查询语句是否包含有Q=**,重写到https://segmentfault.com/?Q=1010000004615312

<code>if ( $query_string ~ "^Q=(.*)$" ){
    rewrite ^ "https://segmentfault.com/" last;
}</code>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート