Введение

Данная статья описывает процесс создания оптимизированных для поисковых систем ссылок на товары и категории взамен стандартных ссылок с параметром GET (например, cart.php?target=category&category_id=2)

Содержание

Общие настройки

Войдите в зону администратора X-Cart, откройте раздел “Настройки магазина / SEO настройки” и активируйте опцию “Включение ЧПУ”.

1.jpg

Появится подтверждение, что опция включена, и с этого момента ваш магазин готов к использованию семантических ссылок.

2.jpg

Если ваш сервер не поддерживает переадресацию и, следовательно, семантические ссылки, вы увидите такое предупреждение:

3.jpg

Это значит, что для работы семантических ссылок необходимо настроить сервер. Данные настройки могут варьироваться в зависимости от серверного програмного обеспечения. Данная статья рассказывает, как настроить Apache, IIS и nginx.

Настройка Apache

Прежде всего, включите Apache модуль mod_rewrite, чтобы появилась кнопка “Включение ЧПУ”. Для этого в Apache файле httpd.conf замените следующую строку:

#LoadModule rewrite_module modules/mod_rewrite.so

на такую:

LoadModule rewrite_module modules/mod_rewrite.so

Теперь перезапустите Apache сервер и проверьте результат.

Настройка IIS

Для настройки IIS потребуется импорт правил Apache. Следуйте инструкциям в статье для импортирования правил из файла <X-Cart>/.htaccess.

Настройка nginx

Строки ниже должны быть внесены в секцию server {} файла конфигурации nginx (nginx.conf):

## Example nginx configuration (X-Cart 5.3.2+)
location @handler {
        index cart.php;

        rewrite ^/sitemap.xml(\?.+)?$ /cart.php?target=sitemap;
        rewrite ^/(.*)$ /cart.php?url=$1 last;
}

location / {
        try_files $uri $uri/ @handler;
}

location ~ \.php$ {
        try_files $uri @handler;
        
        # be careful about your fastcgi params, don't let duplicate try_files
}

Если ваш магазин установлен в подпапке корневого каталога, необходимо указать точное нахождение установки.

Изменение семантических ссылок

Работу SEO-оптимизированных семантических ссылок можно настроить в файле XCART_DIRECTORY/etc/config.php. Настройки прописываются в секции [clean_urls]. Далее приведен полный список настроек и их стандартных значений:

[clean_urls]
; Set to "Y" to enable usage of urls like domain.com/LG for different languages
; possible values "Y", "N".
; Re-deploy your store when change this settings
use_language_url = "Y"

; This separator will be used to separate words in autogenerated clean URLs.
; String with one or more chars.
; By default, only the "-" or "_" characters are allowed.
; Empty string is also allowed.
default_separator = "-"

; If On, makes clean URLs capitalized for every starting letter of a word
capitalize_words = Off

; If On, automatically redirects to canonical urls
; If Off, just adds rel="canonical" link to the page
use_canonical_urls_only = On

; Category Clean URL’s format
; possible values:
; domain/parent/goalcategory/
; domain/goalcategory/
; domain/parent/goalcategory.html
; domain/goalcategory.html
;
; Changing of this setting will not affect existing url's and requires to re-deploy your store
category_clean_urls_format = "domain/parent/goalcategory/"

Алиас семантической ссылки

Также, можно задать уникальные семантические ссылки для таких целевых объектов, как target=bestsellers и target=contact_us (только для зоны покупателей). Внесите пары “ключ - значение” в секцию [clean_urls_aliases]:

[clean_urls_aliases]
; to define your own alias add line below as:
; target = "clean-url"
new_arrivals = "newarrivals"
sale_products = "sale_products"
coming_soon = "coming_soon"
bestsellers = "bestsellers"
contact_us = "contact_us"

Решение проблем

Если SEO-оптимизированные семантические ссылки не вкючаются или не работают:

  1. Убедитесь, что в данной строке в файле .htaccess указан верный путь к магазину:
    RewriteBase /

Это должно быть то же значение, что и значение переменной web_dir в файле <X-Cart>/etc/config.php.

  1. Значение директивы AllowOverride в файле conf.httpd на сервере должно быть
     AllowOverride All