Перейти к содержанию
Форум поддержки пользователей VamShop

как сделать чтобы ?language= присутствовал в url всегда?


Рекомендуемые сообщения

После переключения языка при переходе на др. страницы параметр ?language= исчезает из строки url ?

+

в менюшках тоже нет такого параметра в url

а это черезвычайно хреново для SEO (заявляю это как спец в этой области),

так как в таком случае получается что на страницу на другом языке ведет всего лишь 1 ссылка со страницы основного языка

и очень сложно продвигать запросы другого языка, так как внутрення перелинковка нарушена, точнее ее просто нет!!!

вопрос:

Как сделать, чтобы параметр ?language= присутствовал в url всегда, но не на основном языке,

на основном языке он не нужен

Ссылка на сообщение
Поделиться на другие сайты

Никак по умолчанию не сделать.

По-моему, для seo хреново в любом случае совмещать на одном сайте разные языке, несмотря на url.

Лучше наверное или в отдельную папку вынести другой язык или на другой домен.

Ссылка на сообщение
Поделиться на другие сайты

Никак по умолчанию не сделать.

тогда как не по умолчанию, в каких файлах рыть?

а вот если с ?language= сделать 301 или 302 редиректом, на url

вида www.sitename.com/en/товар_url ???

то это было бы офигенно, а потом со временем, когда все проиндексится выкинуть этот атавизм с ?language=

я думаю vamshopу это пригодится

Ссылка на сообщение
Поделиться на другие сайты

Все ссылки внутри магазина формируются в /inc/vam_href_link.inc.php

Наверное, как минимум, надо с этого файла начинать.

Ссылка на сообщение
Поделиться на другие сайты

мда, я не настолько хорошо знаю php чтобы понять что там происходит,

давай хоть по частям решать проблему,

как сделать чтобы не исчезал параметр language из url?

Ссылка на сообщение
Поделиться на другие сайты

Не знаю, никогда такого не делал.

Если не знаете php - лучше не беритесь.

Наверное самый простой вариант в vam_href_link.inc.php в конце ссылки добавить language=X, где X - код текущего языка. Код текущего языка можно взять из сессии ($_SESSION).

Ссылка на сообщение
Поделиться на другие сайты

Нет, в osCommerce всё точно так же.

Хотя может есть смысл поискать на addons.oscommerce.com , может есть какой-то модуль, но лично я не интересовался таким модулем, конкретную ссылку подсказать не могу.

Ссылка на сообщение
Поделиться на другие сайты

вот знакомый программер подсказал

добавить в 136 строке /inc/vam_href_link.inc.php

после

if (vam_not_null($language)) {
            $params .= '&language=' . $language;
          }[/code] вот это
[code]elseif (isset($_REQUEST['language']) && $_REQUEST['language'] != '' && $_REQUEST['language'] != 'ru') //основной язык
{
$params .= '&language=' . $_REQUEST['language'];
}
это для того чтобы параметр language был в строке url всегда, кроме основного языка который "ru" и это работает, но только для категорий, а для статей и товаров не работает, я попытался вставить тоже самое везде где есть         
if (vam_not_null($language)) {
            $params .= '&language=' . $language;
          }[/code]

но результата никакого

Ссылка на сообщение
Поделиться на другие сайты

странно то что на статьях и новостях работает, может это только в меню не работает,

может это из-за бокса категориес, который формирует линки в меню!??

Ссылка на сообщение
Поделиться на другие сайты

короче, все получилось,

спасибо всем, кто мне ничем не помог

итак дополнительно нужно подправить  templates\шаблон\source\boxes\categories.php

(у меня чуть подпиленное CSS меню vamовское)

находим

       $i=0;
      while ($i < $productsDisplay) {
        $products = vam_db_fetch_array($products_query);
        $product_query = vam_db_query("select products_name from products_description where products_id = " . $products['products_id'] . " AND language_id = ".$languageID );
        $products_page_url = vam_db_query("select products_page_url from products where products_id = " . $products['products_id'] . "");
$product = vam_db_fetch_array($product_query);
$product_url = vam_db_fetch_array($products_page_url);
$base_url = HTTP_SERVER;
        $returnval .= "<li><a href='".$base_url.'/'.$product_url['products_page_url']"'>".$product['products_name']."</a></li>\n";
        $i++;
      }[/code] кстати $base_url = HTTP_SERVER; это вывод адреса домена, чтобы ссылки были не относительные а абсолютные, всем рекомендую так сделать, для seo лучше заменяем на вот это
[code]        if (vam_not_null($language)) {
            $params .= '?language=' . $language;
          }

elseif (isset($_REQUEST['language']) && $_REQUEST['language'] != '' && $_REQUEST['language'] != 'ru') //основной язык
{
$params .= '?language=' . $_REQUEST['language'];
}

      $i=0;
      while ($i < $productsDisplay) {
        $products = vam_db_fetch_array($products_query);
        $product_query = vam_db_query("select products_name from products_description where products_id = " . $products['products_id'] . " AND language_id = ".$languageID );
        $products_page_url = vam_db_query("select products_page_url from products where products_id = " . $products['products_id'] . "");
$product = vam_db_fetch_array($product_query);
$product_url = vam_db_fetch_array($products_page_url);
$base_url = HTTP_SERVER;
        $returnval .= "<li><a href='".$base_url.'/'.$product_url['products_page_url'].$params."'>".$product['products_name']."</a></li>\n";
        $i++;
      }
а в /inc/vam_href_link.inc.php добавляем везде где есть
if (vam_not_null($language)) { 
после него
elseif (isset($_REQUEST['language']) && $_REQUEST['language'] != '' && $_REQUEST['language'] != 'ru') //основной язык
{
$params .= '&language=' . $_REQUEST['language'];
} [/code]

только меняем название переменной $params  на соответствующее той к которой подставляем условие

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...