當用戶首次訪問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衝突?
嗯,你是說我應該檢查cookie是否存在於頁面上(在JS中),如果是這樣的動畫,如果不是隻是正常打印頁面(以便它不做任何重定向)?我的理解是否正確?如果是這樣,你能給我一個如何檢查JS中的Cookie的簡單例子嗎?此外,我是否可以繼續在PHP中設置cookie,然後檢查它是否存在於JS中,還是最好在JS中做所有事情? – Lansana
'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
太棒了,謝謝! – Lansana