2011-08-31 37 views
4

我一直在構建一個jQuery導航的網站,無需重新加載(使用PHP和AJAX),並且最近遇到了頁面「後退」,「前進」和「重新加載」功能以及搜索引擎優化的問題。history.pushState導航 - meta標籤怎麼樣 - 單獨的模板?

- 跳過這一節獲得連勝質疑 -

my site目前(不使用AJAX但)加載一個的index.php其中有幾個「內容」的div,其中之一是可見(class =「active」),而其他不顯示。當用戶點擊導航鏈接時,一個很好的動畫會在內容div之間切換。

我有阿帕奇重寫像

http://mysite.com/abouthttp://mysite.com/index.php?page=about

這裏的「關於」部分將是多數民衆贊成在默認情況下顯示的一個映射的東西(而其他的「內容」的div被隱藏) 。基於這個參數,我包含適當的元標籤的網頁。我的站點地圖有mysite.com/about,mysite.com/blog,這樣他們就可以作爲很好的單獨頁面被索引。

但是,我最近決定讓這個基於ajax的,因爲我打算將更多的內容和它的愚蠢加載到一個頁面上的所有內容。

注意:我現在也在實施Smarty模板。

我決定實現哈希標籤,但看到了固有的SEO問題,後來我發現hashbangs(問心無愧?!),然後找到新的HTML5的東西與history.pushState()History.js和有決定使用它。

所以來這裏的主要問題

如果我只有一個頁面,加載與AJAX內容的div網頁模板,使用history.pushState()來修改URL和使用mod_rewrite和PHP後臺在mysite.com/about(mysite.com/index.php?page=about)(對於基本的可用性和SEO)的直接請求的情況下,我可以提供默認的內容模板,但我無法設置元內容直接請求,除非我有兩個模板 - 內容模板 - 和元模板?有沒有另外一種方法呢?

<title><meta name="description">這樣的標籤是否足夠重要,足以保證爲他們特別設計模板?

總之,我希望我的好mod_rewrite URLs在谷歌上拉上正確的標題和元描述爲特定的Ajax加載的頁面內容模板。

編輯

我要爲相當多,他們這裏發生在hypem.com同樣的事情。他們有一個事件監聽器,在列出新內容時更改<title>標記。他們也會提供正確的<meta name="description">標籤,但前提是這是直接向其中一個主頁發送請求,例如博客 - 其他頁面,如http://hypem.com/blog/indie+today/10332,返回主博客頁面的元標記,並且僅在直接請求時返回

回答

-1

我會首先構建網站以使用所有直接鏈接並且不使用ajax,然後添加ajax。但是,如果瀏覽器正在請求頁面,則僅包含添加ajax/history功能的代碼。如果網頁爬蟲擊中您的網站,請不要包含ajax/history功能。