2010-11-26 5 views
0

私は自分のajaxアプリケーションのすべてのページをスナップショットしており、Googleの仕様[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 vhostを設定するクエリトークンとして

ajax.htmlとは異なるhtmlコンテンツを含むwww.example.com/ajax.html?_escaped_fragment_=mystateに移動すると、ajax.htmlがcurl、wgetおよびを使用してブラウザに表示されます。 googleの "fetch as googlebot"ツール。

私の理解から、問題はそれですか? httpサーバ[apache 2]がブラウザで扱われるのと同じように扱われます。つまり、クエリのparam charとみなされます。

私はこのVHOSTに正しく動作するように指示し、代わりに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 

これは、読み取ります theresの場合は、クエリ文字列 "_escaped_fragment_"、値を取って変数%1に入れてください。次に、urlも 'ajax.html'の場合、ajax.htmlを/ fragments /%1に書き換えます。

関連する問題