Solved: How to Remove SID (SESSION_ID) from URL in Magento 2?
The SID is a “session ID”. Magento uses this to track a user’s activity within the same Magento installation. Normally, Magento powers one website and one store from one installation (database).
Magento could power multiple websites with multiple stores from one installation though. The SID allows users to stay logged in while navigating across these websites/stores.
I think if you have the function enabled, the SID is sent when accessing catalog URLs so Magento can update the session with the user’s location/state for the current website/store.
If you’re not running a multi-website or multi-store environment, it’s safe to disable the SID on the frontend.
To disable SID from the storefront go to:
- Magento dashboard > Store > Configuration > General > Web > Session Validation Settings > Use SID on Storefrontand set its value to No.
- Re-index Magento
- Refresh Magento cache
If the SID is still present in the URL then the next step is to make server level change in your root htaccess file:
The solution is simple. Go to your .htaccess fine and find the line that says
RewriteEngine on
If you want to have www part:
RewriteEngine on RewriteCond %{HTTP_HOST} !^www\.yourdomain\.com$ [NC] RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L]
If you don’t want to have www part:
RewriteEngine on RewriteCond %{HTTP_HOST} !^yourdomain\.com$ [NC] RewriteRule ^(.*)$ http://yourdomain.com/$1 [R=301,L]
Do you know a better solution? Leave a comment and let me know.