20

誰かが私のサイトの一部のMagentoURLに表示され、他のURLには表示されない理由を説明できますか?

それはセッションと関係があると思いますが、私は完全には明確ではありません。また、それをより混乱させるのは、それが一部のURLにのみ表示され、他のURLには表示されないという事実です。

管理エリアの設定を知っているので、削除する方法を知る必要はありません。それが何であるか、その目的は何か、そしてなぜそれが他のページではなくいくつかのページに表示されるのかについての説明が本当に欲しいです。idは、それを削除する方法について盲目的に従うよりも、何が起こっているのかを完全に理解しています。

4

5 に答える 5

35

ブレンダンの答えに加えて、___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を生成していますか?

于 2012-07-03T09:12:08.377 に答える
11

SIDは「セッションID」です。Magentoはこれを使用して、同じMagentoインストール内のユーザーのアクティビティを追跡します。通常、Magentoは1つのインストール(データベース)から1つのWebサイトと1つのストアに電力を供給します。

ただし、Magentoは、1つのインストールから複数のストアを持つ複数のWebサイトに電力を供給することができます。SIDを使用すると、ユーザーはこれらのWebサイト/ストア間を移動している間もログインしたままにできます。

この機能を有効にすると、カタログURLにアクセスするときにSIDが送信されるため、Magentoは現在のWebサイト/ストアのユーザーの場所/状態でセッションを更新できます

マルチWebサイトまたはマルチストア環境を実行していない場合は、フロントエンドでSIDを無効にしても安全です。

于 2012-07-03T05:11:56.040 に答える
2

私が今日出くわしたもので、コメントをしますが、誰かを助けるかもしれません。ページの処理中にエラーが発生した場合、Magentoが誤った製品URL(セッションIDを含む)をフォーマット/作成することがわかりました。ただし、これは一貫していません。PHPエラーがないかサーバーログを確認する価値があります。

于 2012-11-06T20:31:30.940 に答える
1

これは一般的なMagento2のバグであり、すでにmagentoに報告されています。

一時的な修正は

ドキュメントルートに移動し、.htaccessを見つけて追加します

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

下。

これで問題が解決するはずです。私にとって、このM2.1での作業

ではごきげんよう。

参照:https ://github.com/magento/magento2/issues/5517

于 2016-11-23T06:40:13.320 に答える
0

私はこれを見つけるために何時間も探しました、そして正確な答えはここにリストされた他の答えの組み合わせでした。まず、PHPのエラー報告とエラーログを作成しました(GergelyVargaに感謝します)。これを見た:

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

したがって、インストールされている拡張機能の1つにはphp-mbstring、サーバーにインストールされていないパッケージが必要です。それをインストールするとすぐに、SID=UURLはすべて消えました。(将来的には、既存のインストールを新しいサーバーにコピーする前に、Magentoのプレインストールチェックを実行する予定です!)

このタグの背景についてもVinaiに感謝します。

于 2014-03-05T15:37:37.533 に答える