Добавил сегодня на свой русский еще и украинский язык. К URL строке добавился еще индекс /ru/. А так как переиндексировать ссылки на новые мне не особо хотелось сделал как нашел на просторах интернета:
1 Создал файл /override/classes/Link.php
Вставил код:
<?php
class Link extends LinkCore
{
protected function getLangLink($id_lang = null, Context $context = null, $id_shop = null)
{
$parent_result = parent::getLangLink($id_lang, $context, $id_shop);
if ($parent_result) {
if ($id_lang == Configuration::get('PS_LANG_DEFAULT')) {
return '';
} else {
return $parent_result;
}
}
}
}
2 Создал файл /override/classes/Tools.php
Вставил код:
<?php
class Tools extends ToolsCore
{
public static function setCookieLanguage($cookie = null)
{
parent::setCookieLanguage($cookie);
if (!$cookie) {
$cookie = Context::getContext()->cookie;
}
if(!Tools::getValue('isolang') && !Tools::getValue('id_lang') && !Tools::isSubmit('id_category_layered')) {
$cookie->id_lang = Configuration::get('PS_LANG_DEFAULT');
Context::getContext()->language = new Language($cookie->id_lang);
}
/* If language file not present, you must use default language file */
if (!$cookie->id_lang || !Validate::isUnsignedId($cookie->id_lang)) {
$cookie->id_lang = (int)Configuration::get('PS_LANG_DEFAULT');
Context::getContext()->language = new Language($cookie->id_lang);
}
$iso = Language::getIsoById((int)$cookie->id_lang);
@include_once(_PS_THEME_DIR_.'lang/'.$iso.'.php');
return $iso;
}
}
Почистил кэш и удалил файл /cache/class_index.html
Индекс /ru/ исчез и ссылка стала как была раньше. Теперь собственно вопрос другой. Как закрыть в robots.txt от индексации url, который идет с индексом /ua/ . Например - site.com.ua/ua/tovary-na-saite ???
Сообщение отредактировал PENNST (14-11-2018 03:56)