如何从Magento 2中的URL中删除SID(会话ID)

如何从Magento 2(前端)中的URL中删除会话ID。这是SIDURL中的查询参数。

例如: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]

修改后保存即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值