No soy ningun experto y seguramente habra una forma mas correcta de hacerlo pero podrias hacer algo asi:
En el index.html pones links asi:
<a href="cargar_contenido('contenido_a_cargar')">Link</a>
Pones la tipica imagen de cargar con ajax (busca loading.gif en google, por ejemplo)
<img id="imagen_cargando" src="imagenes/cargando.gif" alt="cargando" />
En el js algo asi:
function cargar_contenido(contenido){
$('#imagen_cargando).css('visibility','visible');
$.ajax({
type: "POST",
url: "script_que_devuelve_contenido_en_html.php",
data: 'contenido_a_cargar='+contenido,
dataType: "html",
success: function(msg){
if(parseInt(msg)!=0){
$('#div_que_contiene_contenido').html(msg);
$('#cargando').css('visibility','hidden');
}
}
});
}
Y en el php "script_que_devuelve_contenido_en_html.php" le dices que coja la variable POST "contenido_a_cargar" y dependiendo lo que sea printas una cosa u otra.
Asi, y sin haberlo probado me imagino que no te cambiara la URL "www.loquesea.com/index.html". Luego juega con .htaccess para quitarlo, eso si, ahi no te puedo ayudar.