如何从URL删除SID?


26

我已经在域abc.com上安装了Magento 1.9,并从管理员创建了一个具有URL xyz.abc.com的新网站。

System -> Manage Stores

现在,我完成的工作是创建一个新的子域xyz.abc.com,并指向原始的magento安装。

每当我访问xyz.abc.com时,它都可以正常工作。但是在该页面上生成的链接具有查询字符串参数SID,例如abc.com?SID=sdfskjdf45ssdf/somepage。

现在我要用xyz.abc.com/somepage替换abc.com?SID=sdfskjdf45ssdf/somepage。

Answers:


8

您需要为您的子域存储配置基本URL和基本链接URL。
转到系统->配置->网络->不安全(并在需要时安全),然后填写http://xyz.abc.com基本URL和基本链接URL。
之所以会这样,是因为在运行子域存储时,您实际上是在运行主域存储,并且页面中的每个链接都将带您回到主域存储。


在子域中,我只有http://xyz.abc.com格式,但是仍然看到?__SID=U附加到我的主域网址中。
Mr_Green

系统->配置->网络->会话验证设置->在前端使用SID:NO
matinict


6

许多人想知道为什么有时SID部分会出现在其Magento URL中。这是您的URL通常在末尾有其他SID查询的时候。看一下图像。好奇的是,它并不总是出现。最常见的情况是什么?您没有使用与在系统>配置> Web界面中输入的“基本URL”相同的域变体访问该站点。

当您决定启动该网站时,必须决定要营销http://www.domain.com/ URL还是http://domain.com/。这是一个重要的决定,您不应该经常改变主意。搜索引擎通常将这两个URL视为不同的站点,因此可以在这两个URL之间分配潜在的网页排名。因此,请考虑是否要使用www并坚持这一决定。

确定后,转到系统>配置> Web界面,然后在“基本URL”字段中输入所需的表单。当您访问该站点时,您会注意到当URL与“基本URL”字段中的值匹配时没有“ SID”,而在没有匹配的情况下就会出现。

现在,我们希望网站能够在访问后重定向到正确的URL。有人可以将错误的链接放置到某个论坛或博客。我们不希望这些链接导致不正确的URL,也不希望SID对那些访问者显示。最重要:我们不希望搜索引擎使用SID为URL编制索引。

解决方案很简单。转到您的.htaccess文件,找到提示行

RewriteEngine on 如果您想拥有www部分:

RewriteEngine on RewriteCond %{HTTP_HOST} !^www\.yourdomain\.com$ [NC] RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L] 如果您不想拥有www部分:

RewriteEngine on RewriteCond %{HTTP_HOST} !^yourdomain\.com$ [NC] RewriteRule ^(.*)$ http://yourdomain.com/$1 [R=301,L]

来自Incho。


6
    $params = array(
        '_nosid' => true
    );

    $url = Mage::getUrl('*/*/*', $params);
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.