当前位置: 首页 > 面试题库 >

在Spring MVC中删除URL重写中的jsessionid

瞿和硕
2023-03-14
问题内容

我正在使用Spring
MVC并在jsessionid中遇到问题,我发现,如果未在浏览器中启用cookie来生成如下所示的URL,则jsessionid将被注入到URL中:

http:// localhost / categories; jsessionid = Bsls4aQFXA5RUDcmZKV5iw?cid =
13001

实际上,浏览器没有问题,但是当Google抓取我的网站时,并且似乎Google抓取工具没有cookie
:)时,它们以该形式存储我的网站的url,并且我的网站出现在具有类似包含jsessionid的URL的搜索结果中。

实际上,它运行正常,没有任何问题,但是我更希望URL清晰显示在Google搜索结果中而没有jsessionid。

有什么帮助吗?


问题答案:

要点:只要用户不登录或不执行POST操作,就不要让您的应用创建会话。请勿致电request.getSession()request.getSession(true)。不要为未登录的用户创建或管理会话范围的Bean。确保您正在使用的框架不会不必要地创建会话,除非您先声明要这样做。

如果由于应用程序的设计方式或所用(MVC)框架的局限性/错误而 确实
无法做到这一点,那么最好的选择是将Googlebot请求重定向到没有JSESSIONID标识符的URL。您可以为此使用Tuckey的URL重写过滤器(即Apache
HTTPD的Java变体mod_rewrite)。以下是其配置示例页面中的相关摘录。

隐藏来自Googlebot的请求的jsessionid。

<outbound-rule>
     <name>Strip URL Session ID's</name>
     <note>
         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)
eg,
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 - /



 类似资料:
  • 很好的一天! 你好 目前我在laravel工作,我是新来的。我一直在寻找我的问题的解决方案,但我找不到解决方案。我laravel的工作是访问已经没有 /public在网址我修复这个通过. htaccess,但它可以访问也与 /public在网址。请看下面的链接供您参考。 https://utok.ph/ https://utok.ph/public 我的htaccess文件 重写引擎在重写规则 ^

  • 这是我的情况:我有一个目录,我需要重写URL,所以可以通过或访问。然后我有一个子目录,它需要扩展名被可选地删除,所以可以在和访问。 我独立开发了网站的两个部分,现在我很难让htaccess满足这两个要求。 我当前的文件是: 这些规则完全独立运作(如果我删除另一条,但一起删除)。但是重写规则失败了。 我已经尝试使用适当的规则(root dir的nice URL规则和subdir的remove.php

  • 问题内容: 我正在尝试在我的PHP应用程序中实现URL重写。有人可以分享在PHP和MySQL中实现URL重写的分步过程吗? 在我的应用程序中,我想实现以下URL重写,我想重定向 至 请告诉我如何以上述任何一种方式实现这两个URL重写。 根据以下两种类型中的SEO,管理,应用程序的观点,哪个URL最好是另一件事。 问题答案: 通常,这只不过是启用mod_rewrite模块(您可能已经在主机上启用了该

  • 问题内容: 网站正在无法访问文件的网络主机上运行。但是,我想对用户友好的URL进行URL重写。 例如原始URL 预期网址 问题答案: 正如其他人所说,只需使用即可。 网址中间的“ index.php”可能看起来有些奇怪,但是我认为没有.htaccess可能无法使其看起来更好 否则,您可以要求托管服务商将任何URL重定向到/index.php,以便无需使用URL就可以处理URL重写。 然后,您可以使

  • 问题内容: 我有一个包含以下字段的表: 现在,我需要删除具有same的行。一种方法是使用以下SQL以及脚本( ): 运行此查询后,我可以使用服务器端脚本删除重复项。 但是,我想知道是否只能使用SQL查询来完成。 问题答案: 一种简单的方法是在3列上添加索引。在编写语句时,请包含关键字。像这样: 这将删除所有重复的行。作为一项额外的好处,重复的将来会出错。和往常一样,您可能需要在运行类似内容之前进行

  • 当从另一个网页重定向用户时,是否可以从angularjs URL中删除hashang? 我在AngularJS中有一个网站,我已经能够从我页面中所有URL的地址栏中删除hashang符号(当从一个视图重定向到另一个视图时)。我根据angularjs API使用HTML5Mode:https://docs.angularjs.org/#html5-mode 然而,如果我试图从其他地方链接到我的网站而