在spring mvc中删除url重写中的jsessionid

2024-01-16

我正在使用 spring MVC 并且在 jsessionid 中遇到问题,我发现如果浏览器中未启用 cookie,则会将 jsessionid 注入到 url 中,从而生成如下 url:

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

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

实际上它运行起来没有任何问题,但我更喜欢在没有 jsessionid 的情况下让 URL 清晰地出现在 Google 搜索结果中。

有什么帮助吗?


重点是:只要用户不登录或执行 POST 操作,就不要让您的应用程序创建会话。不要打电话request.getSession() or request.getSession(true)。不要为非登录用户创建或管理会话范围的 Bean。确保您使用的框架不会在未经您许可的情况下创建不必要的会话。

如果这是really由于您的应用程序的设计方式或由于所使用的 (MVC) 框架的限制/错误,这是不可能的,那么您最好的选择是将 Googlebot 请求重定向到没有 JSESSIONID 标识符的 URL。您可以使用Tuckey 的 URL 重写过滤器 http://www.tuckey.org/urlrewrite/为此(例如,Apache HTTPD 的众所周知的 Java 变体)mod_rewrite http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html)。这是其相关性的摘录配置示例页面 http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/guide.html.

隐藏来自 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 - /
     </note>
     <condition name="user-agent">googlebot</condition>
     <from>^(.*?)(?:\;jsessionid=[^\?#]*)?(\?[^#]*)?(#.*)?$</from>
     <to>$1$2$3</to>
 </outbound-rule>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在spring mvc中删除url重写中的jsessionid 的相关文章

随机推荐

  • 在django中显示多个条形图

    我是 django 的新手 对 python 知之甚少 我正在学习在 django 框架中绘制图表 我绘制了单个条形图 但在使用 django 项目的数据库 Telecom db 绘制多个条形图时遇到问题 然而 在 wxPython 中 以
  • 在全屏模式下检测事件更改 Internet Explorer

    我正在尝试编写一个事件处理程序来检测我拥有的视频播放器是否处于全屏模式或 常规 模式 我尝试过使用 document addEventListener fullscreenchange myfunc false 但这在 IE 中不起作用 我
  • 读取 NSUserDefaults 与变量的速度

    我有一个应用程序 它经常调用变量 这些变量存储在NSUserDefaults 我想知道在哪里NSUserDefaults正在存储 如果我打电话NSUserDefaults直接而不是使用变量 哪个更快 变量或NSUserDefaults 因为
  • 如何在 Visual Studio Code 上查看 C# Nuget Package 的源代码?

    当我们选择 转到定义 或 F12 或 CRTL 单击 时 有什么方法可以查看 Nuget 包的源代码吗 此时 我在代码中单击 CRTL 单击 Nuget Package 中的某个类 vscode 会显示程序集摘要 元数据 其中我只能看到文档
  • 从 Git 恢复文件?

    问题与问题相关 致命文件系统错误后如何恢复 Git https stackoverflow com questions 552832 how to restore git after fatal file system error 但对于单
  • 如何在不使用release分支的情况下使用git flow?

    有多家分店可供选择git flow 例如 feature release support hotfix bugfix 我不需要release 分支并想要合并staging分支 一个开发分支 直接到master 使用什么是实现此目的的最佳方法
  • C++11 在 constexpr 函数中使用统一值初始化数组

    我有一个类模板 它根据模板参数构建一个简单的数组作为其成员之一 我需要能够在构造函数之一中将数组中的每个元素初始化为单个值 不幸的是这个构造函数必须是constexpr 相关部分归结为 template
  • 每次循环递减

    是否可以在 Excel 的 VBA 中的每个循环中递减 我有这样的代码 Sub Makro1 Dim rng As Range Dim row As Range Dim cell As Range Set rng Range B1 F18
  • 无法从 .sql 文件创建存储过程 - JDBC

    我正在尝试使用 jdbc 在安装 Web 项目期间执行 sql 文件 谷歌建议的 2 个选项 手动解析脚本 通过拆分 字符 或使用 ant 我更喜欢简单的方式 所以 ant 是一个不错的选择 这是我用来设置数据库的代码 public voi
  • VFY:无法解析静态方法10876:Android

    我在程序中使用了 SmsCbMessage java 类 它取自http grepcode com file repository grepcode com java ext com google android android 4 0 1
  • 使用 WPF 将一个列表与另一个列表绑定

    开门见山 我正在使用 MVVM 编写一个程序 并且制作了如下视图 类结构 class Company int CompanyID string Name List
  • 如何让JavaScript在页面加载后执行?

    我正在执行一个外部脚本 使用
  • 如何在ansible中迭代库存组?

    我看过一些与我的问题类似的帖子 Ansible 迭代库存组 https stackoverflow com questions 53683136 ansible iterate over inventory groups Ansible 迭
  • 将 R markdown 文件发布为博客文章

    我想发布这样的基本博客文章 博客文章示例 http rpubs com hbat 6531使用我的 R markdown 文件 但我想在 Wordpress 而不是 wordpress com 中发布它 最有希望的解决方案似乎是怡辉的功能
  • 在 Android 中从屏幕抓取创建视频

    我想在视频中记录用户交互 然后人们可以将其上传到他们的社交媒体网站 例如 会说话的汤姆猫 Android 应用程序有一个小摄像机图标 用户可以按摄像机图标 然后与应用程序交互 按图标停止录制 然后处理 转换视频以准备上传 我想我可以使用 s
  • 将元素均匀分布在列中

    我有一个名为 wrap其中放置物品 未知数量的物品 thing 应排列成四列 相互堆叠 div class wrap div class thing thing1 div div class thing thing2 div div 列需要
  • Webpack 生产构建不加载任何内容

    我已经使用 React 和 Webpack 开发一个应用程序有一段时间了 我的开发环境运行良好 并且使用 webpack dev server 可以正确加载所有内容 我决定运行应用程序的生产构建 以查看最终产品的尺寸 并观察 webpack
  • 使用 java 8 将逗号分隔的字符串列表映射到列表

    我有一个逗号分隔字符串的列表 List format
  • 为什么 MQL4 OrderModify() 在回测时不会修改订单?

    I m trying to ADD a stop loss to my open market orders in MetaTrader 4 when a position gets 100 pips to the good which i
  • 在spring mvc中删除url重写中的jsessionid

    我正在使用 spring MVC 并且在 jsessionid 中遇到问题 我发现如果浏览器中未启用 cookie 则会将 jsessionid 注入到 url 中 从而生成如下 url http localhost categories