Monday, August 6, 2007

Problème avec crawler Google qui indexe avec JsessionId dans l'url

J'utilise Jetty comme application server et je remarque que Google indexe mes pages en gardant le JsessionId dans l'url.
Ceci occasionne aussi que le googlebot réindexe souvent la même page mais avec un url différent. Je soupçonne que Google en indexant souvent la même page mais avec un url différent diminuera mon "page ranking".

Il semble que le trouble se présente souvent avec Tomcat mais je n'ai jamais vu cela par-exemple avec Oracle application server.
Le googlebot se présente comme ne supportant pas les cookies, donc le JsessionId est ajouté dan s l'url.

Maven, ajouter dans pom.xml:


Ajouter dans web.xml:


Add your own configuration to the WEB-INF/urlrewrite.xml that was created.

PUBLIC "-// UrlRewrite 2.6//EN"

Strip URL Session ID's

Strip ;jsession=XXX from urls passed through response.encodeURL().
The characters ? and # are the only things we can use to find out where the jsessionid ends.
The expression in 'from' below contains three capture groups, the last two being optional.
1, everything before ;jesessionid
2, everything after ;jesessionid=XXX starting with a ? (to get the query string) up to #
3, everything ;jesessionid=XXX and optionally ?XXX starting with a # (to get the target)
from index.jsp;jsessionid=sss?qqq to index.jsp?qqq
from index.jsp;jsessionid=sss?qqq#ttt to index.jsp?qqq#ttt
from index.jsp;jsessionid=asdasdasdsadsadasd#dfds -index.jsp#dfds
from u.jsp;jsessionid=wert.hg - u.jsp
from /;jsessionid=tyu - /



Restart the context.

You can visit (or whatever the address of your local webapp and context) to see output (note: this page is only viewable from localhost).

No comments: