2013-09-26 12 views
6

Non riesco a rendere SEO-friendly il sito web basato su AJAX. Come raccomandato nel tutorial sul web, ho aggiunto "abbastanza" href attribuisce al link: <a href="#!site=contact" data-id="contact" class="navlink">контакт</a> e, in un div in cui il contenuto viene caricato con AJAX per impostazione predefinita, uno script PHP per i crawler:Come gestire? _escaped_fragment_ = per i crawler AJAX?

$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"); 
    } 
} 

ho ho la sensazione che all'inizio ho bisogno di tagliare ulteriormente la parte da (...)/index.php?_escaped_fragment_=site=about perché altrimenti lo script non sarà in grado di GET il valore site dall'URL, ho ragione?

ma, comunque, come faccio a sapere che il crawler trasforma i link piuttosto (quelli con #!) in brutti collegamenti (contenenti ?_escaped_fragment_=)? Mi è stato detto che succede automaticamente e non ho bisogno di fornire questa mappatura, ma Fetch come Googlebot non mi fornisce alcuna informazione su cosa succede all'URL.

risposta

14

Google bot richiederà automaticamente gli url ?_escaped_fragment_=.

Quindi da www.example.com/index.php#!site=about Google bot interrogherà: www.example.com/index.php?_escaped_fragment_=site=about

Sul sito PHP si otterrà come $_GET['_escaped_fragment_'] = "site=about"

Se si desidera ottenere il valore del "sito" è necessario fare qualcosa di simile :

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

Date un'occhiata alla documentazione:

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

+0

avevo paura che funziona in questo modo e appena in tempo in cui si è risposto ho finito di riscrivere il mio sito per la versione senza '' sito =;) Comunque, grazie per soffiare via i miei dubbi! –

+0

Puoi anche aggiungere Alla tua pagina web head se vuoi google bot, esegui la scansione su una pagina jax senza hashes – calmbird

+0

il mio sito lo mostra su ogni pagina che contiene il modulo di contatto. e sto inviando il modulo usando Ajax. cosa dovrei fare . come rimuovere #! e? _escaped_fragment dall'URL. questi URL vengono solo quando utilizzo lo strumento generatore Sitemap A1. È un problema dal punto di vista SEO, per favore aiutatemi –

Problemi correlati