我自己找到了解决方案...使用 mod_rewrite 我可以通过查找 JSESSIONID cookie 来键入初始请求。以下放在我的服务器虚拟主机部分中时实现了我的目标。
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/app/*$
RewriteCond %{REQUEST_URI} !^/content/.*$
RewriteCond %{REQUEST_URI} !^/app/adm/.*$
RewriteCond %{REQUEST_URI} !^/app/index\.jsp$
RewriteCond %{REQUEST_URI} !^/favicon\.ico$
RewriteCond %{HTTP:Cookie} !^.*JSESSIONID=.*$
RewriteRule . - [co=appURI:%{REQUEST_URI}?%{QUERY_STRING}:.mydomain.com]
注意:我在上面为我不想为其设置 cookie 的页面添加了一些过滤器。我使用 JavaScript 在应用程序中检测、取消设置 cookie 和重定向以实现我的目标。
var appURI = getCookie("appURI");
if (typeof(appURI) != "undefined" && appURI != null && appURI != "") {
mydomain.console.log("Found URI from SSO relocating to: " + appURI);
setCookie("appURI", "", -1, "/", "mydomain.com");
document.location.href = appURI;
}
请注意,上面的“setCookie”和“mydomain.console.log”是专有但简单的函数,它们根据它们的名称执行明显的操作。