2013-09-26 48 views
6

Tôi đang nỗ lực để làm cho trang web dựa trên AJAX thân thiện với SEO. Theo đề xuất trong hướng dẫn trên web, tôi đã thêm "khá" href thuộc tính liên kết: <a href="#!site=contact" data-id="contact" class="navlink">контакт</a> và, trong một div mà nội dung được nạp với AJAX theo mặc định, một kịch bản PHP cho crawlers:Cách xử lý? _escaped_fragment_ = cho trình thu thập dữ liệu 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"); 
    } 
} 

Tôi có một cảm giác rằng ngay từ đầu tôi cần phải cắt thêm phần _escaped_fragment_= từ (...)/index.php?_escaped_fragment_=site=about bởi vì nếu không tập lệnh sẽ không thể GET giá trị site từ URL, tôi có đúng không?

nhưng, dù sao, làm cách nào để biết rằng trình thu thập thông tin chuyển đổi các liên kết đẹp (những người có #!) đến các liên kết xấu (có chứa ?_escaped_fragment_=)? Tôi đã được thông báo rằng điều đó xảy ra tự động và tôi không cần cung cấp ánh xạ này, nhưng Tìm nạp như Googlebot không cung cấp cho tôi bất kỳ thông tin nào về những gì xảy ra với URL.

Trả lời

14

Google bot sẽ tự động truy vấn các url ?_escaped_fragment_=.

Vì vậy, từ www.example.com/index.php#!site=about Google bot sẽ truy vấn: www.example.com/index.php?_escaped_fragment_=site=about

Trên trang web PHP bạn sẽ nhận được nó như $_GET['_escaped_fragment_'] = "site=about"

Nếu bạn muốn nhận được giá trị của "trang web" bạn cần phải làm điều gì đó như thế này :

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

Hãy xem tài liệu:

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

+0

tôi sợ nó hoạt động theo cách này và chỉ trong thời gian khi bạn trả lời tôi đã hoàn tất viết lại trang web của tôi với phiên bản mà không cần 'site = ';) anyway, cảm ơn vì thổi nghi ngờ của tôi đi! –

+0

Bạn có thể thêm Vào đầu trang web của mình nếu bạn muốn google bot, thu thập thông tin trên các trang ajax mà không cần băm – calmbird

+0

trang web của tôi hiển thị điều này trên mọi trang chứa biểu mẫu liên hệ. và tôi đang gửi biểu mẫu bằng cách sử dụng Ajax. tôi nên làm gì . làm thế nào để loại bỏ #! và? _escaped_fragment từ url. những url này chỉ xuất hiện khi tôi sử dụng công cụ tạo sơ đồ trang web A1. Đây có phải là một vấn đề từ quan điểm SEO, xin vui lòng giúp đỡ –

Các vấn đề liên quan