2012-07-02 35 views
17

Ai đó có thể giải thích lý do tại sao? ___ SID = U xuất hiện trong một số url magento trên trang web của tôi chứ không phải những người khác?Magento:? ___ SID = U xuất hiện trong một số url

Tôi nghĩ rằng nó có liên quan đến các phiên nhưng không hoàn toàn rõ ràng. Ngoài ra, những gì làm cho nó khó hiểu hơn là thực tế là nó chỉ xuất hiện trong một số url và không phải những người khác.

Tôi không cần biết cách xóa nó khi tôi biết cài đặt trong khu vực quản trị. Tôi thực sự muốn giải thích về nó là gì, mục đích của nó là gì và tại sao nó lại hiển thị trên một số trang chứ không phải những trang khác. id thay vì hiểu những gì đang xảy ra hoàn toàn hơn là một cách mù quáng làm theo một số lời khuyên như thế nào để loại bỏ nó.

Trả lời

32

Tôi thêm vào câu trả lời của Brendan, ___SID=U được sử dụng trong bộ nhớ cache làm trình giữ chỗ cho ID phiên. Nó được thay thế bằng Mage_Core_Model_Url::sessionUrlVar() mà lần lượt gọi Mage_Core_Model_Url::sessionVarCallback(). Các phương thức này được gọi từ Mage_Core_Block_Abstract::_afterCacheUrl(), có nghĩa là bất kỳ URL nào được tìm thấy trong đầu ra khối sẽ chứa ID phiên chính xác (nếu cần).

Vì vậy, để thoát khỏi những tham số trong mã của riêng bạn là "đúng cách" sử dụng này:

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

Nếu chuỗi vẫn hiển thị trong các trang kết đó là một lỗi. Bạn có đang sử dụng một số mô-đun bộ nhớ đệm tùy chỉnh hay tạo URL bằng cách không chuẩn?

10

SID là "ID phiên". Magento sử dụng điều này để theo dõi hoạt động của người dùng trong cùng một cài đặt Magento. Thông thường, Magento cấp quyền cho một trang web và một cửa hàng từ một bản cài đặt (cơ sở dữ liệu).

Magento có thể cấp nhiều trang web với nhiều cửa hàng từ một lần cài đặt. SID cho phép người dùng duy trì trạng thái đăng nhập khi điều hướng trên các trang web/cửa hàng này.

I nghĩ nếu bạn đã bật chức năng, SID sẽ được gửi khi truy cập URL danh mục để Magento có thể cập nhật phiên với vị trí/trạng thái của người dùng cho trang web/cửa hàng hiện tại.

Nếu bạn không chạy môi trường nhiều trang web hoặc nhiều cửa hàng, bạn có thể vô hiệu hóa SID trên giao diện người dùng.

+0

Xin chào, Cảm ơn thông tin giá trị của bạn. Bạn có biết cách chuyển phần thanh toán sang một máy chủ web khác đến cùng một trang web không? Rất biết ơn sự giúp đỡ của bạn. Cảm ơn –

2

Chỉ cần một cái gì đó tôi đi qua ngày hôm nay và mặc dù tôi làm cho một bình luận, có lẽ nó sẽ giúp một ai đó. Tôi thấy rằng Magento sẽ định dạng/tạo một url sản phẩm không chính xác (ví dụ Id phiên) nếu có một số lỗi trong khi xử lý trang. Điều này là không phù hợp mặc dù. Bạn nên xem nhật ký máy chủ của bạn về lỗi PHP.

+0

Đã thấy cùng một vấn đề, ID phiên được hiển thị trong cuộc gọi Ajax do lỗi PHP lên chuỗi. – Pooch

0

Tôi đã tìm kiếm hàng giờ để tìm câu trả lời chính xác và câu trả lời chính xác là sự kết hợp của các câu trả lời khác được liệt kê ở đây. Đầu tiên, tôi sửa đổi báo cáo lỗi và báo cáo lỗi PHP của tôi (cảm ơn Gergely Varga). Tôi đã thấy điều này:

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

Vì vậy, Magento yêu cầu gói php-mbstring mà máy chủ của tôi chưa cài đặt. Ngay khi tôi cài đặt xong, tất cả các URL SID=U đều biến mất. (Trong tương lai, tôi sẽ chạy kiểm tra trước khi cài đặt Magento trước khi sao chép cài đặt hiện có sang máy chủ mới!)

Cũng nhờ Vinai để biết nền tảng của thẻ này.

1

Đây là lỗi chung Magento 2 đã được báo cáo cho Magento.

tạm thời sửa chữa là

Đến Document Root, Tìm .htaccess và thêm

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

dưới đây.

Điều này sẽ giải quyết được vấn đề. Đối với tôi tác phẩm này trong M2.1

Tất cả những điều tốt nhất.

Tham chiếu: https://github.com/magento/magento2/issues/5517

Các vấn đề liên quan