Magento:?___SID=U出现在某些URL中

iibxawm4  于 2023-01-17  发布在  其他
关注(0)|答案(6)|浏览(156)

有人能解释一下为什么?___SID=U出现在我网站上的一些Magento URL中,而不是其他URL中吗?
我认为它与会话有关,但我不完全清楚。而且,更令人困惑的是,它只出现在一些URL中,而其他URL则没有。
我不需要知道如何删除它,因为我知道在管理区的设置。我真的很想知道它是什么,它的目的是什么,为什么它会显示在一些页面上,而不是其他人的解释。我宁愿充分了解发生了什么事,而不是盲目地遵循一些建议,如何删除它。

0aydgbwb

0aydgbwb1#

除了Brendan的答案之外,___SID=U该高速缓存中用作会话ID的占位符。它被Mage_Core_Model_Url::sessionUrlVar()替换,Mage_Core_Model_Url::sessionUrlVar()反过来调用Mage_Core_Model_Url::sessionVarCallback()。这些方法从Mage_Core_Block_Abstract::_afterCacheUrl()调用,这意味着在块输出中找到的任何URL都将包含正确的会话ID(如果需要)。
因此,要在您自己的代码中删除该参数,“正确的方法”如下:

$url = Mage::getUrl('some/magento/route'); // might append ___SID parameter
$url = Mage::getModel('core/url')->sessionUrlVar($url); // process ___SID

如果字符串仍然显示在呈现的页面中,这是一个错误。您是否使用了一些自定义缓存模块,或者使用非标准的方式生成URL?

xxls0lw8

xxls0lw82#

SID是一个“会话ID”。Magento使用它来跟踪用户在同一Magento安装中的活动。通常,Magento从一个安装(数据库)中为一个网站和一个商店供电。
Magento可以从一次安装中为多个网站和多个商店供电。SID允许用户在浏览这些网站/商店时保持登录状态。
我 * 认为 * 如果您启用了该功能,SID将在访问目录URL时发送,以便Magento可以使用当前网站/商店的用户位置/状态更新会话。
如果您没有运行多网站或多商店环境,那么在前端禁用SID是安全的。

kyks70gy

kyks70gy3#

只是我今天遇到的一些事情,虽然我做了一个评论,也许它会帮助别人。我发现Magento将格式/创建一个不正确的产品网址(包括会话ID),如果有一些错误,在处理页面。这是不一致的,虽然。它值得看看你的PHP错误的服务器日志。

w1e3prcc

w1e3prcc4#

这是一个一般的Magento 2错误,已经报告给magento。
临时修复是
转到文档根目录,查找. htaccess并添加

RewriteCond %{HTTP_HOST} ^abc.com
RewriteRule ^(.*) www.abc.com/$1 [L,R=301]

下面。
这应该可以解决这个问题。对我来说,这是M2. 1中的工作
一切顺利。
参考:https://github.com/magento/magento2/issues/5517

dzjeubhm

dzjeubhm5#

我花了几个小时才找到这个问题,确切的答案是这里列出的其他答案的组合。首先,我启动了PHP错误报告和错误日志(感谢Gergely Varga)。

PHP Fatal error:  Call to undefined function mb_strrpos() in /var/www/html/app/code/local/ManaPro/FilterAjax/Model/Observer.php on line 59

因此,我们安装的扩展之一需要php-mbstring软件包,而我的服务器没有安装它。一旦我安装了它,SID=U URL就消失了。(将来我会在将现有安装复制到新服务器之前运行Magento的安装前检查!)
感谢Vinai也为这个标签的背景是什么。

o8x7eapl

o8x7eapl6#

1.转至“应用商店”〉“配置”〉“常规”〉“Web”〉“会话验证设置”〉“在Storefrontand上使用SID”,然后将值设置为“否”。
1.清除Magento缓存

相关问题