最近做了一個短網址功能,由A站輸入短網址轉至B站
但因為B站要Referer為A站才可以訪問,碰到一些問題,所以記錄一下
Referer說明:使目前的網頁可以檢查訪客從哪裡而來
var sourceUrl = "B站網址";
PHtmlContent = string.Format("<script type=\"text/javascript\">document.location.href='{0}';</script>", sourceUrl);
return PHtmlContent;
原先撈到目標網址(B站),是以document.location.href="B站網址"來做轉址
但因為document.location.href等於是直接貼上網址訪問
所以這樣轉去B站的Referer會是空的或直接是判斷成B站訪問B站
所以改為以下方式
var sourceUrl = "B站網址";
PHtmlContent =
string.Format("<meta name='referrer' content='always'><form action='{0}' id='redirectForm' method='POST'></form>" +
"<script type=\"text/javascript\">document.getElementById('redirectForm').submit();</script>", sourceUrl);
return PHtmlContent;
此方式等於是從表單Submit送出,B站的Referer就能抓到訪問者為A站
而<meta name='referrer' content='always'>則是讓https轉http時也會抓到Referer,否則也有可能抓不到
以下為如何看Referer
第二個紅框處,任一個檔案都可以檢視
F12→Network→任一Name(檔案)→Request Headers→Referer