2010-11-26 2 views
0

J'ai cliché toutes les pages de mon application ajax, et conformément à la spécification google [http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=174992] j'ai stocké ces fichiers dans un modèle décrit comme "www.example.com/ajax.html?_escaped_fragment_=mystate ". Dans le même répertoire, il y a un fichier nommé, adapté à cet exemple, ajax.html, qui est une page html statique. Aucun côté serveur n'est impliqué du tout. Lorsque vous naviguez vers www.example.com/ajax.html?_escaped_fragment_=mystate, qui contient du contenu html différent de celui trouvé dans ajax.html, ajax.html est affiché dans le navigateur, en utilisant curl, wget et L'outil "récupérer en tant que googlebot" de google. D'après ce que je comprends, le problème est que? est traité par le serveur http [apache 2] de la même manière que # est traité par le navigateur, c'est-à-dire qu'il est considéré comme un paramètre de requête. Alors, comment puis-je demander à ce VHOST de se comporter correctement et d'envoyer le fichier www.example.com/ajax.html?_escaped_fragment_=mystate à la place?Configurer apache vhost pour ne pas traiter "?" comme jeton de requête

Merci

Répondre

1

Vous pouvez sauvegarder tous vos fragments dans/fragments/(MyState) et utiliser le module apache mod_rewrite:

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

Ce lit comme: Si Theres une chaîne de requête "_escaped_fragment_", prenez la valeur, mettez-la dans la variable% 1 et continuez. Ensuite, si l'URL est également 'ajax.html', réécrivez ajax.html dans/fragments /% 1.

Questions connexes