2010-11-26 98 views
0

查詢我已經快照我的Ajax應用程序的所有網頁,並按照谷歌規範[http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=174992]我存儲在描述爲「www.example.com/ajax.html?_escaped_fragment_=mystate模式這些文件「。 在同一個目錄中,有一個文件名稱,適用於此示例,ajax.html,它是一個靜態html頁面。根本不涉及服務器端。配置Apache虛擬主機不處理「?」如令牌

當導航到www.example.com/ajax.html?_escaped_fragment_=mystate,其中包含HTML內容是從發現ajax.html,ajax.html被顯示在瀏覽器,使用curl,wget的不同,谷歌的「抓取谷歌」工具。

從我的理解是這樣的問題?被HTTP服務器[阿帕奇2]以同樣的方式對待#被瀏覽器處理,即它看作是一個查詢參數字符。

所以,我怎麼教這個虛擬主機正確的行爲,併發送出www.example.com/ajax.html?_escaped_fragment_=mystate文件呢?

感謝

回答

1

你可以保存在/片段/(mystate)所有的片段,並使用Apache模塊mod_rewrite的:

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$ 
RewriteRule ^ajax.html$ /fragments/%1 

這讀作: 如果那裏有一個查詢字符串 「_escaped_fragment_」拿這個值,把它放在變量%1中繼續。然後,如果該URL也就是 'ajax.html' 重寫ajax.html到/片段/%1。