Как настроить главное зеркало и удалить index.php из url в virtuemart 2

Опубликовано: 25 Декабрь, 2012
Категория: SEO оптимизация, Расширения для VirtueMart 2
Комментариев: 74

В этой статье я рассмотрю два небольших, но важных момента, касающихся внутренней оптимизации магазина на virtuemart 2.

Как настроить главное зеркало

В статье про правильный robots.txt для virtuemart 2 я писал, что для яндекса необходимо указывать главное зеркало для того, чтобы избежать дублей страниц с www и без www. Но кроме этого необходимо сам сайт настроить так, что бы происходила автоматическая переадресация (редирект) на главное зеркало. Т.е. если у нашего сайта главное зеркало без www (например, moysait.ru), при вводе адреса www.moysait.ru должен срабатывать редирект на страницу moysait.ru и так на любой другой странице сайта. Если несколько способов настройки, я пользуюсь, на мой взгляд, самым простым.

Настройка редиректа с помощью плагина aiRedirectWww

Скачиваем плагин aiRedirectWww с сайта разработчиков. Устанавливаем стандартным способом через менеджер расширений. В менеджере плагинов находим aiRedirectWww и активируем его. Настроек у плагина минимум. Если у вас основное зеркало с www то в поле Redirect to WWW выбираем Yes, если основное зеркало без www, то соответственно No.

Как убрать index.php из url страницы

Одно из главных нововведений в virtuemart 2 - очень хорошо реализованные ЧПУ (человекопонятные url). Теперь не нужно мучиться с настройкой роутеров (как это было в virtuemart 1.1). Теперь по умолчанию страница товара будет выглядеть так: site.ru/index.php/category/tovar. Все хорошо, но было бы неплохо убрать index.php. Сделать это очень просто.

Переименовываем htaccess.txt, лежащий в корне сайта в .htaccess и в общих настройках joomla в строке Перенаправление URL выбираем Да.

74 комментария

    Александр

    Доброго всем денёчка.
    В продолжении темы хочу задать вопрос:
    После настройки Virtuemart 2 и попадании на страницу товара, линка получается следующего вида:
    https://site_name/component/virtuemart/category_name/tovar_name-detail.html?Itemid=0
    Вопрос в том, как убрать в урле /component/virtuemart/ и -detail.html?Itemid=0.

      admin

      admin

      Если в настройках Joomla в поле "Включить SEF (ЧПУ)" стоит ДА и в настройках virtuemart во вкладке SEO не стоит галка на "Отключить SEO" то url должны нормальный вид иметь

        Александр

        Понятно что должны иметь )
        Но на деле всё обстоит не так.
        Как удалось выяснить, лечится это путём добавления нового пункта в МЕНЮ. Тип пункта меню нужно назначить VirtueMart->Главная. При этом, какой заголовок вы назначите для этого пункта меню, такой текст и появится вместо /component/virtuemart/ в линке. Т.е. если заголовок будет "computer", то линк будет выглядеть так: https://site_name/computer/category_name/tovar_name-detail.html. При необходимости "-detail" меняется на любой другой суффикс в настройках seo в virtuemart. Для того чтобы ненужный пунк меню не мозолил глаза, можно создать новое меню, создать в нём этот пункт меню, но при этом новое меню не публиковать.
        Мне помогло, спасибо этому ресурсу, за всю нужную инфомацию которую я в нём почерпнул.

          admin

          admin

          Спасибо за полезное дополнение к статье

          Ната

          "Для того чтобы ненужный пунк меню не мозолил глаза, можно создать новое меню, создать в нём этот пункт меню, но при этом новое меню не публиковать. Мне помогло, спасибо этому ресурсу, за всю нужную инфомацию которую я в нём почерпнул."

          Попробовала этот способ, но лишний пункт меню из ссылки не пропал. В связи с чем хочу поинтересоваться у Админа, в примере из статьи "Теперь по умолчанию страница товара будет выглядеть так: site.ru/index.php/category/tovar." Пункт меню category является корневым пунктом меню или у него есть родительский элемент? если второе, то к какому типу пункта меню относится его родительский элемент.

          (я хочу ссылку: site.ru/category/tovar, а у меня выходят site.ru/katalog/category/tovar) надеюсь если разобраться с родительским элементом katalog, это поможет 🙂

            admin

            admin

            category - это алиас пункта меню, к которому привязана категория virtuemart
            если у вас category является подкатегорией katalog, то убрать katalog из url не получится

            Ната

            таки получилось! 🙂 может как-то по свободе опишу. а вообще нашла способ, сутки изрядно погуглив

            admin

            admin

            Поделитесь,думаю многим пригодится

    Наталья

    Добрый день. У меня такой вопрос: сделаны все настройки seo, в урлах исчезло /component/virtuemart/. Категории, товары - все выводится прекрасно. НО, когда переходим в корзину, то при нажатии "Оформить заказ" выдается ошибка 500. Ссылка при этом формируется такая: мой_сайт/user/editaddresscheckoutBT. Если же принудительно вручную вписать мой_сайт/component/virtuemart/user/editaddresscheckoutBT, то отрабатывает нормально. В чем может быть проблема и как ее побороть?

      admin

      admin

      Попробуйте создать невидимое меню, которое не будет опубликованно ни в одном модуле.
      В нем создайте пункт меню Virtuemart - Учетная запись .
      Вместо мой_сайт/user/editaddresscheckoutB будет что-то вроде мой_сайт/uchetnaya-zapis/editaddresscheckoutB
      Если не сработает, то можете прислать ссылку на сайт. Все вместе посмотрим и обязательно решим проблему 🙂

        Наталья

        Спасибо, сработало!

        Наталья

        Теперь другая проблема: требуется, чтобы при оформлении заказа пользователь обязательно регистрировался. Так вот, вводим ВСЕ необходимые данные, выбираем тип доставки, тип оплаты, и дальше вместо окончательного подтверждения заказа меня снова перекидывает на страницу заполнения регистрационной формы. Если убрать обязательную регистрацию, тогда заказ формируется нормально. Но заказчику надо, чтоб регистрация была.

          admin

          admin

          К сожалению, в этом вопросе подсказать не смогу, потому что все свои магазины делаю без регистрации ((

            Наталья

            Жаль... Все равно спасибо за помощь.

    oleg

    К примеру имеется ссылка http://сайт/shop/konditsionery-nastennye
    Где shop - это алиас пункта меню для привязки virtuemart 2. Как можно преобразовать ссылку, чтобы она имела вид http://сайт/konditsionery-nastennye/
    Заранее спасибо за помощь, из гугла нашел только что надо править router.php, а подробнее ничего нет.

      admin

      admin

      Вид ссылок никогда не правил...
      Если найдете решение, пожалуйста поделитесь

    Антон

    Добрый день.
    у меня возникла проблема ссылками сразу после установки joomla.
    При начальных настройках у меня были включены ЧПУ и все ссылки с сайта переходили на страницу сервера. После отключения этой функции ссылки открываются, но имеют очень странный вид:
    localhost/joomla/index.php?option=com_content&view=featured&Itemid=435
    файл .htaccess был изначально в таком виде.

      admin

      admin

      они и должны иметь такой вид, потому что вы отключили ЧПУ

    Олег

    Перенес сайт с локалхоста на хостинг. Возникла проблема: При активаном "Перенаправление URL" при переходах на любую ссылку вылетает страница 404. Файл htaccess.txt переименован в .htaccess. В самом файле .htaccess еще ничего не менял. Почему возникает это проблема?

      admin

      admin

      Никогда не сталкивался, всегда делаю сайты сразу на хостинге...

      Виктор

      Абсолютно таже проблема. Бился сначала прошлым летом и сейчас над новой версией сайта. Может в файле .htaccess редирект надо прописать, но как?

    Alexunn

    очень здорово, все работает, спасибо за труд! НОООООО!
    Кто просветит всех тех, кто не сразу узнал об этом и влез в выдачу поисковиков с конструкцией "/component/virtuemart/", а теперь убрал ее? И еще суффикс поменял на свой?

    Нужно прописать 301 редирект в .htaccess, что-то вроде:
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ???????
    RewriteCond %{QUERY_STRING} ?????????
    RewriteRule ??????? [R=301,L]
    но что конкретно?
    ответ был бы очень полезным дополнением к статье, спасибо!

      admin

      admin

      по этому поводу есть очень хорошая статья

        Alexunn

        спасибо, но там, к сожалению, нет ответа на этот вопрос - там про 301й редирект вообще, то есть надо разбираться с полностью с темой ради того только, что бы выполнить единственную задачу, которая неизбежно вытекает после этой статьи. И для всех одна и та же. Вот я и подумал, что было бы полезно...

    Наталья

    Подскажите пожалуйста, как решить такую проблему- при включении ЧПУ не работает постраничная навигация. Страница просто перезагружается, а не показывает следующую. Если отключить ЧПУ навигация снова начинает работать нормально, но ссылки имеют ужасный вид. В сети много пишут об этом, но решение я так и не нашла

      admin

      admin

      для ЧПУ вы используете какой-то плагин или пользуйтесь стандартными средствами joomla?
      я для ЧПУ никакими расширениями не пользуюсь, все нормально работает

    irina

    Здравствуйте. Делаю интернет магазин http://www.sumkin.com.ua/. Добавила товар в корзину, захожу в корзину и нажимаю кнопку «Оформить заказ», но при этом возникает ошибка 102 (с http перенаправляется на https ). Несколько дней назад все работало верно. Как можно исправить и отменить перенаправление?

      admin

      admin

      может дело в плагине для корзины, ничего не устанавливали?
      если нет, то попробуйте просто заменить все файлы из папки cart

    irina

    Спасибо за ответ. Проблема решилась. В настройках магазина убрала галочку с опции "Включить SSL (рекомендуется)"

    Дмитрий

    Подскажите выход из ситуации. Сразу после установки Joomla не поставил галочку "перенаправление url". Virtue Mart наполнил товарами, поставил галочку, но теперь по ссылкам ничего не открывается. То есть http://сайт.юа/igrushki - нет страницы, а http://сайт.юа/index.php/igrushki - она открывается.

      admin

      admin

      в корне сайта переименуйте htaccess.txt в .htaccess

    Анастасия

    Здравствуйте! Отличная статья, очень помогла, но!)) как всегда есть "но")) главная страница сайта является типом меню "главная virtuemart", с включенным ЧПУ ссылка на товар имеет вид сайт.ру/имя_категории/товар

    а вот позварез нужно, чтобы ссылка имела вид сайт.ру/category/имя_категории/товар

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

    Дмитрий

    Блин, прочитал все что тут написано про ==editaddresscartBT== и галку ==Включить SEF (ЧПУ)== и не понимаю... Что у меня такое. делаю второй магаз на Джумле-Виртумарт и опять пляски с бубном... Попадаю в корзину и при включенном ==Включить SEF (ЧПУ)== когда наживаю ссылку из корзины ==Добавить/Изменить адрес доставки == допустим, то перехожу по ссылке http://localhost/shop.birdieart.ru/index.php/user/editaddresscartST?virtuemart_user_id%5B0%5D=0 на главную странчку а не на страничку редактирования, а при нажатии на пункт ==Изменить== данные для выставления счета попадаю на злосчастную http://localhost/shop.birdieart.ru/index.php/user/editaddresscartBT
    Пробовал создавать меню невидимое, но то ли неправильно сделал то ли не помогло... Ваще засада. Помогите пож))))

      Дмитрий

      Решилось переустановкой шаблона и всех приблуд

    Максим

    Здравствуйте. Помогите пожалуйста разобраться. Я убрал index.php из url страницы. И потом пишет ошибку .
    404 - File or directory not found.
    The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.

      admin

      admin

      если вы не забыли переименовать htaccess.txt, то скорее всего проблема в кеше сайта

        Артем

        Добрый день подскажите, сделал все как описано выше, но после нескольких переходов по странице выдает ошибку 500 Itrenal Error

        На хостинге пишут чт оу них все норм нужно очищать кеш, но данной проблемы не было когда в ссылке на странице был index.php

          admin

          admin

          вы не забыли переименовать htaccess.txt?

      Марина

      У меня такое было из за окончания ссылки товара. Когда исправляла SEO-суффикс поставила "." сейчас стоит звёздочка "*" и всё работает.

    Максим

    Спасибо за ответ. Я забыл переименовать web.config.txt в web.config

    Виктор

    Скажите, на локалке "Перенаправление URL" работает, или надо делать сразу на сайте?

    При установке Перенаправление URL денвер выдёт ругательство:
    Not Found

    The requested URL /magazin/sazhentsy-plodovykh-derevev was not found on this server.
    Подсказка Денвера

    Вы ошиблись при наборе URL в браузере. Вероятнее всего, сервер пытается найти файл Z:/home/Farm25/www/magazin/sazhentsy-plodovykh-derevev, которого не существует.

    В случае использования CGI-скриптов, корректные пути к CGI-директориям следующие:

    URL Куда указывает
    http://***/cgi-glob/script.cgi /home/cgi-glob/script.cgi
    http://***/cgi/script.cgi /home/***/cgi/script.cgi
    http://***/cgi-bin/script.cgi /home/***/cgi-bin/script.cgi

    Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13 Server at farm25 Port 80

      admin

      admin

      на локалке никогда не тестировал
      делал всегда сразу на сайте

        Виктор

        Перенесу сайт на хостинг, отпишусь по результатам.

    Виктор

    Получилось! Работает и на локалке и на хостинге.

    Сначала переименовал вместо .htaccess в ,htaccess и удивлялся почему "перенаправление URL" выдает в VM страницу 404 🙂

    Сослепу увидел эту запятую только через несколько месяцев. Параллельно перелопатив половину интернета и заменив до неузнаваемости содержимое самого файла.

    Александр

    Здравствуйте. Выполнил все как написано, все получилось.. index'a нет, но теперь не открывается главная страница сайта (выдает страницу моего хостера "Сайт находится в разработке"). Остальные страницы работают нормально. Помогите решить проблему. ЗАранее спасбио!

      admin

      admin

      судя по сайту проблема с главной страницей решена

        Александр

        нет, я просто вернул старый .htaccess из бэкапа, чтобы продолжить работу.. а с той проблемой так и не разобрался (

    Катя

    Зравствуйте!
    Скажите пожалуйста, как поменять в url карточек товаров вместо названия товаров на артикул? а то длинный url получается...
    Пример:
    Вместо: сайт.ру/имя категории/имя подкатегории/имя товара,
    так: сайт.ру/имя категории/имя подкатегории/артикул

      admin

      admin

      Здравствуйте!
      Нужно править файл роутера, но что конкретно не могу подсказать
      Если найдете решение, о отпишитесь по возможности

      Либо (если товара не много) можно поправить все алиасы вручную для каждого товара

      Катя

      Товаров к сожалению много, поэтому вопрос ещё актуален!
      Кто подскажет, что конкретно надо поправить в файле роутера?

    Максим

    исправляем itemid=o

    в корне сайта открываем фаил ".htaccess" и в конце вставляем:

    RewriteCond %{QUERY_STRING} ^(.*)Itemid=([0-9]+)$
    RewriteRule ^(.*) /$1?%1 [R=301,L]

    (если не нашли фаил ".htaccess" получаем его из "htaccess.txt"

    незачто :о)

    Андрей

    Здравствуйте!

    Если товару присвоить принадлежность к 2 категориям (родительской и дочерней), то ссылка на товар будет выглядит так:
    mysite.com/родительская_категория/товар

    Так же и хлебные крошки будут иметь такой вид: Главная/категория/товар

    Подскажите, как сделать так, чтобы ссылки на товар имели такой вид: mysite.com/родительская_категория/дочерняя_категория/товар

    Елена

    Здравствуйте. Подскажите, пожалуйста, после всех этих действий index.php остался только на главной странице. Как его можно убрать?

      Елена

      И при анализе сайта выдает Статус www 303, Статус no www 200. Ошибка! Одно из зеркал не работает. Как это можно исправить?

    Дмитрий

    В корзине после нажатия оформить заказ - > заполняю страницу (ваши данные) нажимаю СОХРАНИТЬ и страница обновляется и все, больше ничего не происходит..

    помогите пожалуйста.)

      admin

      admin

      У Вас стандартная корзина virtuemart?
      Если да, то попробуйте обновиться.
      Если не заработает, то советую One Page.

        Дмитрий

        Был стандартный модуль корзины, установил VM - Shopping cart - проблема осталась. Версия VirtueMart 3.0.9, попробую установить One page, можете рассказать подробнее о его установке? Сначала через менеджер расширений, а дальше как?

          admin

          admin

          Дальше в Компонентах появится новый пункт - One Page. Настройки русифицированы. По шагам трудно рассказать, так как все зависит от того, что в итоге Вы хотите получить.

    Яна

    Здравствуйте, урлы в категориях настроила. http://www.rosa-secret.ru/genskie-kupalniki

    Но когда перехожу в карточку товара, получается длинный не красивый урл
    http://www.rosa-secret.ru/index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=58&virtuemart_category_id=27&Itemid=982

    Хотя в карточке товара в псевдоним стоит fioletovyj-super-mini-bikini-ipanema

    Подскажите, как сделать короткий урл карточки товара (например как псевдоним)?

      admin

      admin

      Здравствуйте!

      Проверьте настройки в Virtuemart > Настройки > SEO
      Отключить SEO - Нет
      Use product link suffix - Да
      Перевести строки -Да

        Яна

        Да, все так и сделала, не помогло.

          admin

          admin

          Странно... в файл router.php вносились какие-то изменения?
          Раньше правильно работала или ошибка была с самого начала?

            Яна

            К сожалению, я не обратила внимание было ли это с самого начала. Категории настраивала, там с урл все в порядке. В в файл router.php изменений не делала, хотя мне дорабатывали дизайн шаблона, может зацепили что-то. А на что нужно обратить в router.php и где он лежит, подскажите, пожалуйста?

            admin

            admin

            /components/com_virtuemart/router.php
            Попробуйте на тестовом сервере обновить virtuemart, возможно это поможет.

            Яна

            Обратила внимание, что урл берется не из вертумарт, а из созданных меню?

            Подскажите, пожалуйста, как настроить чтобы алиас брался из вертумарт? VirtueMart 3.0.16

    Яна

    [p]Здравствуйте, подскажите, пожалуйста, почему карточка товара открывается по двум одинаковым урл? Как избавиться от длинного урл, а был доступен только короткий чпу урл (он из алиаса берется).[/p]

    Короткий http://www.rosa-secret.ru/genskie-kupalniki/gill4

    Длинный http://www.rosa-secret.ru/index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=53&virtuemart_category_id=27&Itemid=982

      admin

      admin

      Здравствуйте!

      Это один и тот же адрес, только один с ЧПУ, а другой без.
      В коде страницы указан канонический адрес странице (тег canonical) без ЧПУ. Насколько я помню у Вас были проблемы с видом ссылок на сайте. Отсюда и 2 разные ссылки на один товар.

        Яна

        Правильно я понимаю, что в длинном урле вы имеете ввиду есть тег canonical? Мне не нужно такие страницы скрывать в роботс от индексации?

        Проблема с урл разрешилась, на фрилансе выставила задание, программист исправил ошибку. Написал " Разработчики, которые делали сайт, не переопределяли макеты интернет-магазина в шаблон Joomla. Это приведет к тому, что после первого же обновления Virtuamrt, изменения, которые они вносили пропадут. "

          admin

          admin

          Скрывать их не нужно, но они должны быть уже в ЧПУ виде. Нужно понять почему неправильно формируется ссылка в теге canonical.

    Дмитрий

    Добрый день, подскажите пжл, как сделать редирект на главную страницу сайта, а не на главную магазина, спасибо.

      admin

      admin

      Здравствуйте!
      Если нужен редирект со страниц с 404 ошибкой, то посмотрите в этой статье.

        Дмитрий

        Добрый день, я не совсем это имел виду, хочу настроить переадрессацию на главную страницу сайта, которая не является главной страницей магазина, ссылки в навигации (хлебные крошки), письмах продавцу и покупателю, ссылаются на каталог где более 100 категорий, можно где-то это поправить, стандартным компонентом переадрессации не получается.

          admin

          admin

          Для правильной работы сайта необходим пункт меню с типом Virtuemart > Главная. Попробуйте создать его в невидимом меню.

    Дмитрий

    Спасибо.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
Для вставки кода заключите его в теги [php] [/php]
*