gpt4 book ai didi

php - 如何处理 AJAX 爬虫的 ?_escaped_fragment_=?

转载 作者:可可西里 更新时间:2023-11-01 13:10:16 25 4
gpt4 key购买 nike

我正在努力使基于 AJAX 的网站对 SEO 友好。按照网络教程中的建议,我添加了“漂亮”href链接的属性:<a href="#!site=contact" data-id="contact" class="navlink">контакт</a>并且,在默认情况下使用 AJAX 加载内容的 div 中,用于爬虫的 PHP 脚本:

$files = glob('./pages/*.php'); 

foreach ($files as &$file) {
$file = substr($file, 8, -4);

}

if (isset($_GET['site'])) {
if (in_array($_GET['site'], $files)) {
include ("./pages/".$_GET['site'].".php");
}
}

我有一种感觉,一开始我需要额外削减 _escaped_fragment_=部分来自 (...)/index.php?_escaped_fragment_=site=about因为否则脚本将无法 GET site来自 URL 的值,我说得对吗?

但是,无论如何,我怎么知道爬虫将漂亮的链接(带有 #! 的链接)转换为丑陋的链接(包含 ?_escaped_fragment_= 的链接)?有人告诉我它会自动发生,我不需要提供此映射,但 Fetch as Googlebot 不会向我提供有关 URL 发生的情况的任何信息。

最佳答案

Google 机器人将自动查询 ?_escaped_fragment_= 网址。

所以来自 www.example.com/index.php#!site=about Google 机器人将查询:www.example.com/index.php?_escaped_fragment_=site=about

在 PHP 网站上,您将以 $_GET['_escaped_fragment_'] = "site=about"

如果你想获得“网站”的值(value),你需要做这样的事情:

if(isset($_GET['_escaped_fragment_'])){
$escaped = explode("=", $_GET['_escaped_fragment_']);
if(isset($escaped[1]) && in_array($escaped[1], $files)){
include ("./pages/".$escaped[1].".php");
}
}

查看文档:

https://developers.google.com/webmasters/ajax-crawling/docs/specification

关于php - 如何处理 AJAX 爬虫的 ?_escaped_fragment_=?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19029347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com