2013-09-26 9 views
6

Staram się, aby strona internetowa oparta na technologii AJAX była przyjazna dla SEO. Zgodnie z zaleceniami zawartymi tutoriali w sieci, dodałem „dość” href przypisuje linków: <a href="#!site=contact" data-id="contact" class="navlink">контакт</a> iw div gdzie treść jest ładowany z AJAX domyślnie skrypt PHP do roboty:Jak obsługiwać? _escaped_fragment_ = dla robotów 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"); 
    } 
} 

mam wrażenie, że na początku muszę dodatkowo wyciąć część _escaped_fragment_= z (...)/index.php?_escaped_fragment_=site=about, ponieważ w przeciwnym razie skrypt nie będzie mógł uzyskać wartości z adresu URL, czy mam rację?

ale, w każdym razie, skąd wiadomo, że przeszukiwacz przekształca ładne linki (te z #!) w brzydkie łącza (zawierające ?_escaped_fragment_=)? Powiedziano mi, że dzieje się to automatycznie i nie muszę podawać tego odwzorowania, ale funkcja Pobierz jako Googlebot nie dostarcza mi żadnych informacji o tym, co stanie się z adresem URL.

Odpowiedz

14

Google bot automatycznie wyszuka adresy URL w domenie ?_escaped_fragment_=.

Więc od www.example.com/index.php#!site=about Google bot będzie zapytanie: www.example.com/index.php?_escaped_fragment_=site=about

Na miejscu PHP dostaniesz go jako $_GET['_escaped_fragment_'] = "site=about"

Jeśli chcesz uzyskać wartość „miejscu” trzeba zrobić coś takiego :

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

Spójrz na dokumentacji:

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

+0

Bałem to działa w ten sposób i tylko w czasie, gdy odpowiedział Skończyłem przepisywanie moją stronę do wersji bez '' = miejscu;) W każdym razie, dzięki za dmuchanie moje wątpliwości z dala! –

+0

Możesz dodać Do nagłówka strony, jeśli chcesz bot google, indeksować na stronach ajaxowych bez skrótów – calmbird

+0

moja strona pokazuje to na każdej stronie, która zawiera formularz kontaktowy. i przesyłam formularz za pomocą Ajax. co powinienem zrobić . jak usunąć #! i? _escaped_fragment z adresu URL. ten adres URL pojawia się tylko wtedy, gdy używam narzędzia generatora sitemap A1. Czy to jest problem z punktu widzenia SEO, proszę o pomoc –

Powiązane problemy