我使用mod_rewrite得到SEO友好的URL使用jQuery.load()與mod_rewrite的
RewriteEngine on
RewriteBase/
RewriteRule ^([^/\.]+)/?$ /page.php?page=$1 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /page.php?page=$1&sub=$2 [L]
所以我可以加載http://foo.com/food/local。很好的工作,但它會加載整個頁面,並且客戶端想要添加一個持續跨頁面加載的流媒體播放器。
所以我嘗試切換到加載與jQuery.load(所有內容)
<script>
$(".ajax").click(function(e) {
e.preventDefault();
$('#contentMain').load($(this).attr("href"), function() {console.log("Load was performed."); });
});
</script>
我能得到這個我的整個頁面加載到#contentMain但我感到困惑如何保持,而SEO網址加載只剝離內容的剝離版本的PHP。
例如來到http://foo.com/food/local會加載整個頁面,但點擊與href /食品/外國從http://foo.com/food/local鏈接沒有打到page.php每個mod_rewrite,但只是民意調查content.php相同的參數?我應該重建page.php以某種方式識別上下文嗎?
此外,當你使用這種方法,然後你通過AJAX更新元描述和標題?或只要http://foo.com/food/local可以蜘蛛並有正確的元信息沒有關係?
你應該讓所有的鏈接完好無損並鏈接到頁面。然後使用jQuery「捕捉」這些鏈接的點擊事件並重新加載內容(也可以使用javascript在地址欄中設置網址)。這是最好的解決方案,因爲如果用戶沒有啓用javascript,它也可以工作 –
在php中,檢測請求是否是ajax請求。如果是,請返回精簡版,否則返回完整版。 http://davidwalsh.name/detect-ajax –
@KevinB多麼優秀的資源!這只是讓我的生活變得更輕鬆! – jerrygarciuh