2015-09-19 87 views
0

當用戶首次訪問domain.com時,會設置一個cookie,並將其重定向到domain.com/welcome(這基本上是索引,但與僅顯示一次的介紹動畫相似)。將PHP cookie設置爲重定向,googlebot也會重定向 - 如何阻止此問題?

當用戶第二次訪問該網站時,它會保留在domain.com上,並且不再轉到domain.com/welcome,因爲cookie已經設置好了。

夠簡單。要測試它,請轉到http://lansana.me

問題是,我在robots.txt中阻止/歡迎,以防止搜索結果中出現重複的頁面(因爲/和/歡迎頁面基本上具有相同的內容,只是更具動畫效果) ,但是當我嘗試在網站管理員工具中以谷歌的形式獲取時,它說它被重定向到/歡迎頁面(顯然)。有什麼方法可以告訴Google不要聽我重定向的代碼嗎?

這是我在Laravel控制器,設置cookie和重定向或留在主頁上(PHP):

public function index() 
    { 
     $cookie = 'oreos'; 
     $value = 'redirect'; 
     $expiration = time() + (10 * 365 * 24 * 60 * 60); 
     $domain = '/'; 

     if (!isset($_COOKIE[$cookie])) { 
      setcookie($cookie, $value, $expiration, $domain); 

      $articles = ArticlesModel::latest()->orderBy('created_at', 'desc')->get(); 

      return redirect()->action('[email protected]'); 
     } 

     $articles = ArticlesModel::latest()->orderBy('created_at', 'desc')->get(); 

     return view('pages.index', compact('articles')); 
    } 

    public function welcome() 
    { 
     $articles = ArticlesModel::latest()->orderBy('created_at', 'desc')->get(); 

     return view('pages.welcome', compact('articles')); 
    } 

這裏是一個基本上沒有基於頁面不同的東西的JavaScript(我不知道這個腳本是多麼重要這個問題):

// IGNORE THIS LINE 
    if ($(location).attr('pathname') == '/resume') { 

     ..... 

    // if current page is/
    } else if ($(location).attr('pathname') == '/') { 

     ..... 

    // If current page is /welcome 
    } else if ($(location).attr('pathname') == '/welcome') { 

     ..... 

    } 

如果沒有辦法告訴Googlebot忽略指數和受歡迎的方法,只是去索引,有沒有更好的方式來實現我什麼這樣做會不會與Googlebot衝突?

回答

1

而不是檢查您的JavaScript中的路徑,檢查cookie的存在。重定向總是不好,因爲它對性能不利,顯然也是谷歌。

您也可以將cookie創建移動到JavaScript(甚至爲其使用不同的存儲)並刪除任何服務器端邏輯。我認爲這一點特別有趣,因爲你的功能實際上隻影響了演示文稿;服務器爲什麼要關心?

+0

嗯,你是說我應該檢查cookie是否存在於頁面上(在JS中),如果是這樣的動畫,如果不是隻是正常打印頁面(以便它不做任何重定向)?我的理解是否正確?如果是這樣,你能給我一個如何檢查JS中的Cookie的簡單例子嗎?此外,我是否可以繼續在PHP中設置cookie,然後檢查它是否存在於JS中,還是最好在JS中做所有事情? – Lansana

+0

'if(cookie exists){do animation and set cookie} else {do nothing}'我會在JS中做所有事情,看看https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie和https://github.com/js-cookie/js-cookie。 – Fleshgrinder

+0

太棒了,謝謝! – Lansana