到目前为止,我尝试了两种方法:
-1。添加到web.xml:
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
-2。使用漂亮的面孔,添加到pretty-config.xml:
<rewrite match="(?i)^(.*)#\.\w+(.*)" substitute="$1$2" redirect="301"/>
-3。 Jetty具体。添加到web.xml:
<context-param>
<param-name>org.eclipse.jetty.servlet.SessionIdPathParameterName</param-name>
<param-value>none</param-value>
</context-param>
没有任何帮助。 另外我无法理解,“#。{jsessionid}”和“jsessionid = {jsessionid}”格式之间有什么区别(其中{jsessionid}是一些看似哈希的字符串)?
EDIT1:
它看起来像fragment-id。他在我的所有网址上做了什么?
答案 0 :(得分:0)
这个哈希不是jsessionid。它附加了addthis跟踪。要禁用它,请使用:
<script type="text/javascript">
var addthis_config = {
"data_track_addressbar" : false
};
</script>
我不知道,可能最好删除这个问题,因为它有点愚蠢。
答案 1 :(得分:0)
除了alehro所说的,//重写[http://ocpsoft.org/rewrite/]可能更适合您尝试通过从URL和其他此类自定义任务中删除会话ID。配置更具声明性和强大功能,但也更冗长。
以下是使用//重写的方法。
@Override
public Configuration getConfiguration(final ServletContext context)
{
return ConfigurationBuilder.begin()
.addRule()
.when(Direction.isInbound()
.and(URL.matches("{p}{sessionID}{s}")
.where("sessionID").matches("#\\.\\w+"))))
.perform(Redirect.temporary("{p}{s}"));
}
网址参数默认为匹配.*
,因此前缀和后缀(p)和(s)不需要额外的配置。