2012-07-02 9 views
17

Qualcuno può spiegare perché? ___ SID = U appare in alcuni URL magento sul mio sito e non in altri?Magento:? ___ SID = U visualizzato in alcuni URL

Penso che abbia qualcosa a che fare con le sessioni ma non è del tutto chiaro. Inoltre, ciò che rende più confuso è il fatto che appare solo in alcuni URL e non in altri.

Non ho bisogno di sapere come rimuoverlo poiché sono a conoscenza delle impostazioni nell'area di amministrazione. Mi piacerebbe davvero una spiegazione di cosa sia, quale sia il suo scopo e perché dovrebbe apparire in alcune pagine e non in altre. id piuttosto capire cosa sta succedendo pienamente segui ciecamente qualche consiglio su come rimuoverlo.

risposta

32

Oltre alla risposta di Brendan, lo ___SID=U viene utilizzato nella cache come segnaposto per l'ID di sessione. È sostituito da Mage_Core_Model_Url::sessionUrlVar() che a sua volta chiama Mage_Core_Model_Url::sessionVarCallback(). Questi metodi sono chiamati da Mage_Core_Block_Abstract::_afterCacheUrl(), il che significa che qualsiasi URL trovato nell'output del blocco conterrà l'ID di sessione corretto (se necessario).

Così per sbarazzarsi del parametro nel proprio codice il "modo giusto" utilizzare questo:

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

Se la stringa mostra ancora in pagina visualizzata che è un bug. Stai utilizzando un modulo di memorizzazione nella cache personalizzato o la generazione di URL utilizzando un metodo non standard?

10

Il SID è un "ID di sessione". Magento usa questo per tenere traccia dell'attività di un utente all'interno della stessa installazione di Magento. Normalmente, Magento alimenta un sito Web e un negozio da un'installazione (database).

Magento potrebbe tuttavia alimentare più siti Web con più negozi da un'installazione. Il SID consente agli utenti di rimanere connessi durante la navigazione su questi siti Web/negozi.

I think se si dispone della funzione abilitata, il SID viene inviato quando si accede agli URL di catalogo in modo che Magento possa aggiornare la sessione con la posizione/stato dell'utente per il sito/negozio corrente.

Se non si utilizza un sito Web multi-sito o multi-store, è possibile disabilitare il SID sul frontend.

+0

Ciao, grazie per le tue informazioni preziose. Sai come spostare la parte di pagamento su un altro server web nello stesso sito? Apprezzo davvero il tuo aiuto. Grazie –

2

Solo qualcosa che ho incontrato oggi e anche se faccio un commento, forse aiuterà qualcuno. Ho trovato che Magento formatta/crea un url prodotto errato (incluso ID sessione) se ci sono stati errori durante l'elaborazione della pagina. Questo non è coerente però. Vale la pena dare un'occhiata ai log del server per gli errori PHP.

+0

Ho visto lo stesso problema, l'ID di sessione è stato visualizzato in una chiamata Ajax a causa di un errore PHP sulla catena. – Pooch

0

Ho cercato per ore di trovare questo e la risposta precisa era una combinazione delle altre risposte elencate qui. Innanzitutto, ho ampliato la segnalazione degli errori PHP e la registrazione degli errori (grazie a Gergely Varga). Ho visto questo:

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

Quindi, Magento richiede un pacchetto php-mbstring, che non aveva installato il mio server. Non appena l'ho installato, gli URL SID=U sono tutti scomparsi. (In futuro eseguirò i controlli pre-installazione di Magento prima di copiare un'installazione esistente su un nuovo server!)

Grazie a Vinai anche per lo sfondo di ciò che questo tag è per.

1

Questo è un errore generale di Magento 2 che è già segnalato a Magento.

temporanea correzione è

Vai alla radice dei documenti, Trova .htaccess e aggiungere

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

di seguito.

Questo dovrebbe risolvere il problema. Per me questo lavoro in M2.1

Tutto il meglio.

Riferimento: https://github.com/magento/magento2/issues/5517

Problemi correlati