異常嘅文章瀏覽量


喺資料庫入面,我有加入到一欄係用黎記錄返每篇文章嘅點擊率或者瀏覽量。今日我重設咗呢嚿嘢返去0,由頭數過。

點解我要咁做呢?原因係其實喺1.1版本嘅時候已經發現文章個count數異常地大。當時我以為係因為自己無將increment個數定返做1,所以就將increment()嘅第二項變數set做1。當然其實心知肚明嘅係,佢個2nd argument預設就係1,又點會無啦啦變咗其他嘢?

於是close咗issue後直到準備上1.2嘅時候,走返入去資料庫睇返發現啲數依然都係異常地大...嘛,自己都有自知之明係不人氣(?)嘅時候就自然會試吓點解啦,於是就發現即使自己將increment()嘅第二項變數set做1,佢都係會自動變成+3。上網睇吓有無解決方案,發現有可能係有啲嘢multi-request咗所以行多咗兩次。咁我就走入去access.log度睇吓。

[IP_ADDRESS] - - [26/Apr/2018:15:06:46 +0800] "GET /images/upload/20180125022347-5a68cf3363088.png HTTP/1.1" 200 745476 "https://www.littpi.net/blog/post/12" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
[IP_ADDRESS] - - [26/Apr/2018:15:06:49 +0800] "GET /blog/post/12 HTTP/1.1" 206 9800 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
[IP_ADDRESS] - - [26/Apr/2018:15:06:49 +0800] "GET /blog/post/12 HTTP/1.1" 206 9799 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"

嗯?facebookexternalhit/1.1?仲有條link?咩黎架?

閣下找到本頁,可能是因為有 Facebook 用戶曾將閣下的網站連結發送給其他 Facebook 用戶。

簡單黎講就應該係Facebook要將你嘅網站內容cache出黎,等share俾其他FB用戶嗰陣就會即刻拎到啲資料咁。問題係,因為呢嚿嘢嘅關係我無厘頭地多咗兩個view數?嘛,仲未計其他唔同搜尋引擎嘅bots同crawlers,諸如TwitterBot、MJ12Bot等等...無錯,呢堆bot有助我喺搜尋引擎度更易被搜尋到,但係另一方面佢哋擾亂咗我個實際數字。

於是我就更新咗當入去篇文章嘅連結嗰陣要做嘅嘢。流程如下:
1. 檢查佢係咪bot/crawler
2. 如果係bot/crawler就唔會更新view counter
(Bold咗嘅位係新加...)

// This is used to check if it is a robot or web crawler.
// It will be kept updated since the name is different.
$robot = false;
if (empty(request()->server('HTTP_USER_AGENT')) || preg_match('/(facebookexternalhit.*)|(.*bot.*)|(.*crawl.*)/i', request()->server('HTTP_USER_AGENT')) !== 0) {
    $robot = true;
}

if ($robot === false) {
    // Do the increment job if it is not a bot or crawler.
    ...
}

其實個regexp應該要加埋spider...不過可以遲下先再搞。希望跟住落黎呢個問題可以正式解決。

Powered by Half-moon Production.

Copyright © 2011-2020 by 泣雨家的雜物房. Version 1.5.2.

異常嘅文章瀏覽量


喺資料庫入面,我有加入到一欄係用黎記錄返每篇文章嘅點擊率或者瀏覽量。今日我重設咗呢嚿嘢返去0,由頭數過。

點解我要咁做呢?原因係其實喺1.1版本嘅時候已經發現文章個count數異常地大。當時我以為係因為自己無將increment個數定返做1,所以就將increment()嘅第二項變數set做1。當然其實心知肚明嘅係,佢個2nd argument預設就係1,又點會無啦啦變咗其他嘢?

於是close咗issue後直到準備上1.2嘅時候,走返入去資料庫睇返發現啲數依然都係異常地大...嘛,自己都有自知之明係不人氣(?)嘅時候就自然會試吓點解啦,於是就發現即使自己將increment()嘅第二項變數set做1,佢都係會自動變成+3。上網睇吓有無解決方案,發現有可能係有啲嘢multi-request咗所以行多咗兩次。咁我就走入去access.log度睇吓。

[IP_ADDRESS] - - [26/Apr/2018:15:06:46 +0800] "GET /images/upload/20180125022347-5a68cf3363088.png HTTP/1.1" 200 745476 "https://www.littpi.net/blog/post/12" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
[IP_ADDRESS] - - [26/Apr/2018:15:06:49 +0800] "GET /blog/post/12 HTTP/1.1" 206 9800 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
[IP_ADDRESS] - - [26/Apr/2018:15:06:49 +0800] "GET /blog/post/12 HTTP/1.1" 206 9799 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"

嗯?facebookexternalhit/1.1?仲有條link?咩黎架?

閣下找到本頁,可能是因為有 Facebook 用戶曾將閣下的網站連結發送給其他 Facebook 用戶。

簡單黎講就應該係Facebook要將你嘅網站內容cache出黎,等share俾其他FB用戶嗰陣就會即刻拎到啲資料咁。問題係,因為呢嚿嘢嘅關係我無厘頭地多咗兩個view數?嘛,仲未計其他唔同搜尋引擎嘅bots同crawlers,諸如TwitterBot、MJ12Bot等等...無錯,呢堆bot有助我喺搜尋引擎度更易被搜尋到,但係另一方面佢哋擾亂咗我個實際數字。

於是我就更新咗當入去篇文章嘅連結嗰陣要做嘅嘢。流程如下:
1. 檢查佢係咪bot/crawler
2. 如果係bot/crawler就唔會更新view counter
(Bold咗嘅位係新加...)

// This is used to check if it is a robot or web crawler.
// It will be kept updated since the name is different.
$robot = false;
if (empty(request()->server('HTTP_USER_AGENT')) || preg_match('/(facebookexternalhit.*)|(.*bot.*)|(.*crawl.*)/i', request()->server('HTTP_USER_AGENT')) !== 0) {
    $robot = true;
}

if ($robot === false) {
    // Do the increment job if it is not a bot or crawler.
    ...
}

其實個regexp應該要加埋spider...不過可以遲下先再搞。希望跟住落黎呢個問題可以正式解決。