{"id":442,"date":"2017-06-07T17:14:09","date_gmt":"2017-06-07T14:14:09","guid":{"rendered":"http:\/\/presta.site\/blog\/?p=442"},"modified":"2018-10-24T20:08:59","modified_gmt":"2018-10-24T17:08:59","slug":"how-to-remove-en-from-urls-in-prestashop","status":"publish","type":"post","link":"https:\/\/presta.site\/blog\/en\/how-to-remove-en-from-urls-in-prestashop\/","title":{"rendered":"How to remove &#171;\/en&#187; from URLs in PrestaShop"},"content":{"rendered":"<p>If you have multiple languages installed in your shop, then all URLs will include language code. And even when you open the home page of your site you&#8217;ll get that language suffix, even for default language. It doesn&#8217;t look fine but fortunately you can fix this behavior.<\/p>\n<p>This tutorial describes <strong>how to remove default language code from your URLs<\/strong> (usually &#171;\/en&#187;).<\/p>\n<p><!--more--><\/p>\n<h4>Works for PrestaShop 1.5 \/ 1.6<\/h4>\n<p>You have to use overrides to do this.<\/p>\n<ol>\n<li>\nCreate (or edit if exists) file <strong>\/override\/classes\/Link.php<\/strong><br \/>\nPaste this code into that file (or merge with existing code):<\/p>\n<div class=\"codecolorer-container php blackboard\" style=\"overflow:auto;white-space:nowrap;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/><\/div><\/td><td><div class=\"php codecolorer\"><span class=\"kw2\">&lt;?php<\/span><br \/>\n<br \/>\n<span class=\"kw2\">class<\/span> <a href=\"http:\/\/www.php.net\/link\"><span class=\"kw3\">Link<\/span><\/a> <span class=\"kw2\">extends<\/span> LinkCore<br \/>\n<span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw2\">protected<\/span> <span class=\"kw2\">function<\/span> getLangLink<span class=\"br0\">&#40;<\/span><span class=\"re0\">$id_lang<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">,<\/span> Context <span class=\"re0\">$context<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$id_shop<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw4\">null<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$parent_result<\/span> <span class=\"sy0\">=<\/span> parent<span class=\"sy0\">::<\/span><span class=\"me2\">getLangLink<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$id_lang<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$context<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$id_shop<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$parent_result<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$id_lang<\/span> <span class=\"sy0\">==<\/span> Configuration<span class=\"sy0\">::<\/span><span class=\"me2\">get<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'PS_LANG_DEFAULT'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> <span class=\"st_h\">''<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span> <span class=\"kw1\">else<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> <span class=\"re0\">$parent_result<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<\/li>\n<li>\nCreate (or edit if exists) file <strong>\/override\/classes\/Tools.php<\/strong><br \/>\nPaste this code into that file (or merge with existing code):<\/p>\n<div class=\"codecolorer-container php blackboard\" style=\"overflow:auto;white-space:nowrap;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/><\/div><\/td><td><div class=\"php codecolorer\"><span class=\"kw2\">&lt;?php<\/span><br \/>\n<br \/>\n<span class=\"kw2\">class<\/span> Tools <span class=\"kw2\">extends<\/span> ToolsCore<br \/>\n<span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw2\">public<\/span> static <span class=\"kw2\">function<\/span> setCookieLanguage<span class=\"br0\">&#40;<\/span><span class=\"re0\">$cookie<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw4\">null<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; parent<span class=\"sy0\">::<\/span><span class=\"me2\">setCookieLanguage<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$cookie<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"sy0\">!<\/span><span class=\"re0\">$cookie<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$cookie<\/span> <span class=\"sy0\">=<\/span> Context<span class=\"sy0\">::<\/span><span class=\"me2\">getContext<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">cookie<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span><span class=\"br0\">&#40;<\/span><span class=\"sy0\">!<\/span>Tools<span class=\"sy0\">::<\/span><span class=\"me2\">getValue<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'isolang'<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">&amp;&amp;<\/span> <span class=\"sy0\">!<\/span>Tools<span class=\"sy0\">::<\/span><span class=\"me2\">getValue<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'id_lang'<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">&amp;&amp;<\/span> <span class=\"sy0\">!<\/span>Tools<span class=\"sy0\">::<\/span><span class=\"me2\">isSubmit<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'id_category_layered'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$cookie<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">id_lang<\/span> <span class=\"sy0\">=<\/span> Configuration<span class=\"sy0\">::<\/span><span class=\"me2\">get<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'PS_LANG_DEFAULT'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Context<span class=\"sy0\">::<\/span><span class=\"me2\">getContext<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">language<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> Language<span class=\"br0\">&#40;<\/span><span class=\"re0\">$cookie<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">id_lang<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"coMULTI\">\/* If language file not present, you must use default language file *\/<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"sy0\">!<\/span><span class=\"re0\">$cookie<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">id_lang<\/span> <span class=\"sy0\">||<\/span> <span class=\"sy0\">!<\/span>Validate<span class=\"sy0\">::<\/span><span class=\"me2\">isUnsignedId<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$cookie<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">id_lang<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$cookie<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">id_lang<\/span> <span class=\"sy0\">=<\/span> <span class=\"br0\">&#40;<\/span>int<span class=\"br0\">&#41;<\/span>Configuration<span class=\"sy0\">::<\/span><span class=\"me2\">get<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'PS_LANG_DEFAULT'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Context<span class=\"sy0\">::<\/span><span class=\"me2\">getContext<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">language<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> Language<span class=\"br0\">&#40;<\/span><span class=\"re0\">$cookie<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">id_lang<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$iso<\/span> <span class=\"sy0\">=<\/span> Language<span class=\"sy0\">::<\/span><span class=\"me2\">getIsoById<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#40;<\/span>int<span class=\"br0\">&#41;<\/span><span class=\"re0\">$cookie<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">id_lang<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">@<\/span><span class=\"kw1\">include_once<\/span><span class=\"br0\">&#40;<\/span>_PS_THEME_DIR_<span class=\"sy0\">.<\/span><span class=\"st_h\">'lang\/'<\/span><span class=\"sy0\">.<\/span><span class=\"re0\">$iso<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">'.php'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> <span class=\"re0\">$iso<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Note that on line #13 we use <strong>Tools::isSubmit(&#8216;id_category_layered&#8217;)<\/strong> expression. It helps Blocklayered module to correctly determine the language. You can also add to this line your other modules that have problems with determining language.<\/li>\n<li>Now clear the shop cache (<a href=\"http:\/\/presta.site\/blog\/en\/how-to-clear-prestashop-cache\/\" target=\"_blank\">how to clear the cache<\/a>).<\/li>\n<\/ol>\n<p>All done! Open your website and check the result.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you have multiple languages installed in your shop, then all URLs will include language code. And even when you open the home page of your site you&#8217;ll get that language suffix, even for default language. It doesn&#8217;t look fine but fortunately you can fix this behavior. This tutorial describes how to remove default language &hellip; <a href=\"https:\/\/presta.site\/blog\/en\/how-to-remove-en-from-urls-in-prestashop\/\" class=\"more-link\">\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u0435\u0435 <span class=\"screen-reader-text\">How to remove &#171;\/en&#187; from URLs in PrestaShop<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":459,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/442"}],"collection":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/comments?post=442"}],"version-history":[{"count":18,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/442\/revisions"}],"predecessor-version":[{"id":508,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/442\/revisions\/508"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/media\/459"}],"wp:attachment":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/media?parent=442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/categories?post=442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/tags?post=442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}