Home | 简体中文 | 繁体中文 | 杂文 | Search | ITEYE 博客 | OSChina 博客 | Facebook | Linkedin | 作品与服务 | Email

3.9. FAQ

3.9.1. http://www.netkiller.cn/test.html;jsessionid=7D25CE666FF437F2094AA945E97CEB37

URL经常会出现 jsessionid,这是因为当你使用c:url的时候,它会判断当前域下是否已经创建jsessionid的cookie变量,如果没有并且你链接的是静态页面,那么c:url将传递jsessionid变量,迫使Tomcat为当前域创建jsessionid cookie。

当你使用 Apache Nginx 作为Tomcat前端是,由于Apache Nginx不识别;jsessionid=7D25CE666FF437F2094AA945E97CEB37这种URL,会跳出404页面。

解决方案一,放弃使用c:url,如果你需要保持context 的 path 设置,可以使用下面方法

			
<a href="${pageContext.request.contextPath}/test.html">Netkiller Test</a>
						
			

方案二,使用rewrite截取jsessionid做忽略处理

Apache:

ReWriteRule ^/(\w+);jsessionid=\w+$ /$1 [L,R=301]
ReWriteRule ^/(\w+\.do);jsessionid=\w+$ /$1 [L,R=301]
			

Nginx:

rewrite ^(.*)\;jsessionid=(.*)$ $1 break;
			
comments powered by Disqus