如何从Magento 2(前端)中的URL中删除会话ID。这是SID
URL中的查询参数。
例如:https://example.com/contact/?SID = sfl317buq8ru4uf4a ...
从2.3.3 https://github.com/magento/magento2/issues/25663 开始删除
转到商店>配置>常规> Web>会话验证设置>在店面中使用SID并将其值设置为否
SID是“会话ID”。Magento使用它来跟踪用户在同一Magento安装中的活动。通常,Magento通过一项安装(数据库)为一个网站和一家商店提供动力。
Magento可以从一个安装中为具有多个商店的多个网站提供动力。SID允许用户在这些网站/商店之间导航时保持登录状态。
我认为,如果您启用了该功能,则在访问目录URL时会发送SID,以便Magento可以使用当前网站/商店的用户位置/状态来更新会话。
如果您不在运行多网站或多商店环境,则可以在前端禁用SID是安全的
些已经将“ 在店面中使用SID”设置为“ 否”(如Siarhey Uchukhlebau在他的回答中指出)的人仍然无法摆脱URL中的&sid = ...,请查看以下链接。
它是一个Magento错误,将在2.3版中修复。
相关票证:https : //github.com/magento/magento2/issues/9453
幸运的是,有一个Inchoo教程,介绍如何通过.htaccess文件将其删除,方法是解决方法
http://inchoo.net/dev-talk/remove-sid-from-magento-urls/
使用从Magento更新中从商店配置设置中删除的Frontend SID。但是,在core_config_data表中,该值仍可以设置为1。
更新您的MySQL数据库表“ core_config_data”,并将路径“ web / session / use_frontend_sid”的值设置为“ 0”。对所有存储值执行此操作。
UPDATE core_config_data SET value = '0' WHERE path = 'web/session/use_frontend_sid';
出现SID这种字符串是由于用户输入的地址和后台配置的基本地址不一致导致的,如后台设置的基本地址是http://www.xxx.com/而用户在地址栏如果输入了http://xxx.com的话,搜索引擎会把这两个认为是两个网站,因此浏览的时候就会出现sid了,解决办法就是将http://xxx.com使用301重定向到 http://www.xxx.com/即可。使用301重定向方法很简单,直接在.htaccess中修改即可,打开htaccess,在其中加入以下语句:
RewriteCond %{HTTP_HOST} ^xxx\.com/$ [NC]
RewriteRule ^(.*)$ http://www.xxx.com/$1 [L,R=301]
修改后保存即可。