Link pushstate i SEO HTML5

Próbuję zaimplementować historię pushstate na mojej stronie, aby załadować zawartość ze strony single.php wewnątrz kontenera index.php.

Moja strona ma dwie strony główne: index.php i single.php.

W index.php znajdują się linki, które wywołują skrypt pushstate:

<a class="phplink" href="/Formlabs-3D-printer" title="Formlabs 3D printer">Post 12</a> 
<a class="phplink" href="/Minimal-Bumper-for-iPhone-5" title="Minimal Bumper for iPhone 5">Post 11</a>

Na mojej stronie single.php używam isset get method, aby dynamicznie ładować zawartość odpowiadającą klikniętemu linkowi na index.php:

<?php
if (isset($_GET["page"])) { 
//I do some stuff in order to echo content
?>

W moim pliku .htaccess przepisuję link URL (powodem, dla którego link index.php jest wyczyszczony):

Options +FollowSymLinks
RewriteEngine on
RewriteRule /([a-zA-Z0-9\-]+)$ /index.php 
RewriteRule /([a-zA-Z0-9\-]+)$ /single.php?page=$1 [L]

A tutaj mój skrypt pushstate:

$.ajaxSetup({cache:false});
$(".phplink").click(function(){
    var $post_link = $(this);
    load_content($post_link.attr('title'),$post_link.attr('href'));
    return false;
}); 

window.onpopstate = function(event) {
    if (event.state) {
        load_content(event.state.title, window.location.pathname, true);
    } else {
        var stateObj = {
        title: document.title,
        url: window.location.pathname,
        };
    url = window.location.pathname;
    load_content(url,url);
    }
}  

function load_content(title,url,skipHistory) {
    $.get(url,function (data) {
        document.title = title;
        var stateObj = {
            title: title,
            url: url
            };
        if (!skipHistory) {
            if (typeof window.history.pushState == 'function') {
                window.history.pushState(stateObj,title,url);
            }
        }
        if(url.substring(1) != '') {
            $("#ajaxify_container").html("loading...");
            $("#ajaxify_container").load('single.php?page='+url.substring(1)+' #container-2');  
        } 
        else {
            $("#ajaxify_container").html('');   
        }
    });
}

Mój skrypt pushstate działa, aby załadować zawartość na kliknięcie linku (on.phplink Kliknij). Działa również dla przycisku wstecz / do przodu.

1st PROBLEM: Kiedy odświeżam przeglądarkę (za pomocą linku pushstate w adresie URL) działa ona na chrome Google (ładuj zawartość z single.php do kontenera index.php), ale nie w IE10 (nic nie jest ładowane, pozostaje na index.php strona).

2. PROBLEM: Jeśli wyłączę javascript, aby zobaczyć, co się dzieje z googlebot (dla SEO). Nie mogę załadować / dotrzeć do strony single.php, zawsze pozostaje ona na index.php. Strona single.php nie może być indeksowana przez wyszukiwarkę (przypuszczam, ale nie jestem tego pewien). To zachowanie jest normalne, ponieważ ustawiłem w moim pliku .htaccess, że „wszystkie te linki” zostaną przekierowane do index.php.

Robię tę sztuczkę, ponieważ bez niej pushstate ładuje stronę single.php po odświeżeniu. I nie chcę tego zachowania. Chcę po odświeżeniu po prostu załadować zawartość z single.php do kontenera index.php.

Więc moim głównym problemem (problemem 2) jest: Nie wiem, jak napisać skrypt lub moje linki na mojej stronie php, aby załadować zawartość w moim pliku index.php po kliknięciu, odświeżam i wracam / przeskakuję dalej.

W normalnym zachowaniu pushstate, czy przy odświeżaniu przeglądarki, onpopstate może ładować zawartość ze strony do kontenera innej strony (ładować zawartość z single.php do kontenera index.php)?

Mam nadzieję, że ktoś może mi pomóc i wyjaśnić, jak to działa. Mam pewne trudności ze zrozumieniem, jak to działa z linkami.

Przepraszam za mój angielski, jestem Francuzem ...

questionAnswers(1)

yourAnswerToTheQuestion