我正在努力使基于AJAX的网站对SEO友好。正如在网络上的教程中所建议的那样,我在链接上添加了“漂亮”href
属性:<a href="#!site=contact" data-id="contact" class="navlink">контакт</a>
,在默认情况下内容加载了AJAX的div中,爬虫的PHP脚本: / p>
$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
来自网址的价值,我是对的吗?
但是,无论如何,我怎么知道抓取工具将漂亮的链接(带有#!
的链接)转换为丑陋的链接(包含?_escaped_fragment_=
)?我被告知这是自动发生的,我不需要提供这种映射,但是Googlebot的抓取并没有向我提供有关URL发生的任何信息。
答案 0 :(得分:14)
Google bot会自动查询?_escaped_fragment_=
网址。
所以来自www.example.com/index.php#!site=about
Google bot会查询:www.example.com/index.php?_escaped_fragment_=site=about
在PHP网站上,您将获得$_GET['_escaped_fragment_'] = "site=about"
如果您想获得“网站”的价值,您需要执行以下操作:
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