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


Answers:


23

转到商店>配置>常规> Web>会话验证设置>在店面中使用SID并将其值设置为否

例

这是有关SID好答案

SID是“会话ID”。Magento使用它来跟踪同一Magento安装中的用户活动。通常,Magento通过一项安装(数据库)为一个网站和一家商店提供动力。

Magento可以从一个安装中为具有多个商店的多个网站提供动力。SID允许用户在这些网站/商店之间导航时保​​持登录状态。

我认为,如果您启用了该功能,则在访问目录URL时会发送SID,以便Magento可以使用当前网站/商店的用户位置/状态来更新会话。

如果您不在运行多网站或多商店环境,则可以安全地在前端禁用SID。


谢谢您的回复 !!!我去做,然后在几分钟内回复结果!
马特·比达斯

2
我已经使用了这种方法,并且在前端禁用了SID,也将单存储模式设置为“是”,但SID仍然显示。在生产模式下,我们是否应该重新生成文件以使其正常工作?我不这么认为,因为它是一个配置值。有任何想法吗?
dchayka

@dchayka我认为这可能是缓存问题。尝试刷新它。
Siarhey Uchukhlebau

@SiarheyUchukhlebau缓存已刷新。我知道是什么。感谢您的跟进。
dchayka

@SiarheyUchukhlebau如何在magento 2中更改example.com/?SID=nufp7tmaardcoff2ddbp4vmmo6的元标记?
supriya mishra

4

那些已经将“ 在Storefront使用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 2.3发布。这个问题解决了吗?找不到任何有关它的信息。
Akif

我没有使用Magento 2.3,但是在Magento 2.2.6中,我不再遇到这个问题。
Michael Poppinger

0

?SID如果将PHP配置为不在服务器上存储会话,或者浏览器不接受Cookie,PHP 是否不会自动添加?

我相信Magento不会默认执行此操作。有一个设置,但是我假设OP不会更改此设置,否则他会自己解决这个问题。


如果启用了PHP运行时选项session.use_trans_sid,则相对URI将更改为自动包含会话ID。默认情况下,此选项未启用。Magento 2的“在店面中使用SID”的默认设置为“是”。
t理查兹

-7

vendor/magento/framework/Session/SidResolver.php

找到该函数并在下面注释该行。

public function getUseSessionInUrl()
{
   // return $this->_useSessionInUrl;
}

1
不要编辑Magento核心文件。同样在下一个Composer命令之后,的内容vendor/magento/framework/可能会得到恢复/更新
7ochem,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.