2012-07-02 2 views
17

누군가 설명 할 수 있습니까? ___ SID = U는 내 사이트의 일부 마젠타 색 URL에 나타나며 다른 사람은 표시하지 않습니다?Magento : ___ 일부 URL에 SID = U 표시

나는 세션과 관련이 있다고 생각하지만 완전히 명확하지는 않습니다. 또한, 무엇이 더 혼란 스럽다는 사실은 그 URL이 일부 URL에만 나타나고 다른 URL에는 나타나지 않는다는 사실입니다.

관리자 영역의 설정을 알고 있으므로 제거하는 방법을 알 필요가 없습니다. 나는 그것이 무엇인지, 그 목적이 무엇인지, 그리고 그것이 왜 다른 페이지가 아닌 어떤 페이지에 나타나는지에 대한 설명을 정말로 원할 것입니다. 이드는 오히려 완전히 맹목적으로 그것을 제거하는 방법에 대한 조언을 따르는보다 무슨 일이 일어나는지 이해합니다.

답변

32

브렌든의 답변에 덧붙여, ___SID=U은 캐시에서 세션 ID의 자리 표시 자로 사용됩니다. 이 번호는 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을 생성하고 있습니까?

10

SID는 "세션 ID"입니다. Magento는이 기능을 사용하여 동일한 Magento 설치 내에서 사용자의 활동을 추적합니다. 일반적으로 Magento는 하나의 설치 (데이터베이스)에서 하나의 웹 사이트와 하나의 저장소에 권한을 부여합니다.

Magento는 하나의 설치에서 여러 매장으로 여러 웹 사이트에 전원을 공급할 수 있습니다. SID는 사용자가이 웹 사이트/상점을 탐색하면서 로그인 할 수있게합니다. 기능을 사용하도록 설정하면 Magento가 현재 웹 사이트/저장소에 대한 사용자의 위치/상태로 세션을 업데이트 할 수 있도록 카탈로그 URL에 액세스 할 때 SID가 전송됩니다.

다중 웹 사이트 또는 다중 저장소 환경을 실행하지 않는 경우 프론트 엔드에서 SID를 비활성화하는 것이 안전합니다.

+0

안녕하세요, 여러분의 소중한 정보 감사합니다. 동일한 사이트로 다른 웹 서버로 지불 부분을 이동하는 방법을 알고 있습니까? 도움을 주셔서 감사합니다. 감사합니다. –

2

내가 오늘 만나러 왔지만 내가 코멘트를 달았지만 아마 누군가를 도울 것입니다. 페이지 처리 중 오류가 발생하면 Magento에서 잘못된 제품 URL (inc. 세션 ID)을 포맷/생성합니다. 그러나 이것은 일관성이 없습니다. PHP 오류에 대한 서버 로그를 살펴볼 가치가 있습니다.

+0

같은 문제가 발생했습니다. PHP 오류로 인해 세션 ID가 Ajax 호출에 표시되었습니다. – Pooch

0

나는 이것을 찾기 위해 몇 시간 동안 사냥을했는데 정확한 답변은 여기에 나열된 다른 답변들의 조합이었습니다. 첫째, 나는 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 

그래서, 마 젠토는 내 서버에 설치하지 않았다 a를 php-mbstring 패키지를 필요 :이를 보았다. 설치하자 마자 SID=U URL이 모두 사라졌습니다. (앞으로는 기존 서버를 새로운 서버에 복사하기 전에 Magento의 사전 설치 검사를 실행하게 될 것입니다.)

이 태그의 배경에 대해서도 Vinai에게 감사드립니다.

1

이것은 magento에 이미보고 된 일반적인 Magento 2 버그입니다.

임시 수정

가 이동 문서 루트에, 찾기 htaccess로 및 아래

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

를 추가합니다.

이렇게하면 문제가 해결됩니다. M2.1에서이 작품은

모두 최고입니다.

참조 : https://github.com/magento/magento2/issues/5517