2.7.2. OpenLiteSpeed

Внимание!

При использовании OpenLiteSpeed не рекомендуется включать PageSpeed (см. официальную документацию OLS).

LiteSpeed — веб-сервер, разработанный компанией LiteSpeed Technologies, который является альтернативой веб-серверу Apache и совместим с наиболее распространёнными его возможностями вроде .htaccess и mod_rewrite. В первую очередь LiteSpeed интересен тем, что позволяет ускорить работу сайтов за счёт использования специализированных плагинов для различных CMS. Эти плагины обеспечивают интеграцию с кешем LiteSpeed Cache (LSCache).

Существует в двух вариантах — версия с открытым исходным кодом OpenLiteSpeed и платная версия LiteSpeed Enterprise. На хостинге используется первый вариант — OpenLiteSpeed, который имеет ряд отличий от платной версии:

  • Не отслеживаются изменения файла .htaccess — внесённые в него изменения начинают работать не мгновенно, а с некоторой задержкой.
  • Нет поддержки ESI — из-за этого плагины для интеграции с LSCache будут работать не во всех CMS (например, их не получится запустить в PrestaShop и Magento — плагины для этих CMS требуют обязательного наличия поддержки ESI).

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

  • Можно использовать версию PHP не ниже 5.4.
  • Существует ряд существенных нюансов при работе с файлом .htaccess.
  • Невозможно запускать скрипты:
    • Python.
    • Perl.
    • CGI.
  • Не поддерживается модуль LiteMage.
  • Не поддерживается симлинки (символьные ссылки на другие файлы или каталоги). При попытке открыть такую ссылку будет возвращён код 403.
  • Директивы активируются при первом запросе к сайту и затем обновляются раз в 5 минут (каждые 300 секунд). Из-за этого изменения начинают действовать не сразу и нужно ожидать их применения.
  • Работают только директивы Rewrite (кроме RewriteBase) и Option +SymLinksIfOwnerMatch. Все остальные директивы игнорируются.
  • Чтобы все директивы Rewrite корректно обрабатывались веб-сервером LiteSpeed, нужно их изменить в соответствии с инструкциями из официальной документации. Например, директива для Apache, которая выглядит так:
    RewriteRule ^example/(.*)$ another/example/$1 [L]

    В LiteSpeed должна выглядеть так:

    RewriteRule ^/?example/(.*)$ another/example/$1 [L]

    В отличие от Apache, в LiteSpeed директивы должны чётко указывать на определённый каталог, откуда или куда будет производиться редирект. В начале каталогов или имён файлов нужно устанавливать /, чтобы задать начальную корневую позицию.

  • Для настройки директив, которые будут использоваться только веб-сервером LiteSpeed, можно использовать обёртку IfModule, например:
    <IfModule LiteSpeed>
      RewriteCond %{REQUEST_URI} ^/example/$
      RewriteRule ^.*$ http://%{HTTP_HOST}/another/example/ [R=301,L]
    <IfModule>
  1. Ознакомьтесь с особенностями работы OpenLiteSpeed и убедитесь, что ваш сайт им соответствует.
  2. Откройте раздел «Настройки сайта».
  3. В поле «Веб-сервер» выберите «OpenLiteSpeed» и сохраните изменения:
  4. Подождите примерно 10-15 минут, пока изменения вступят в силу.

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

Условия, при которых добавляется кодировка:

  • Запрос дошёл до веб-сервера OpenLiteSpeed:
    • Запросы к динамическому контенту (скриптам).
    • Запросы к статическим файлам, расширения которых отсутствуют в списке статических.
  • В ответе OpenLiteSpeed не указана кодировка (например, с заголовком Content-Type: text/plain вместо Content-Type: text/plain; charset=utf-8).
Содержание

    (6)

    Комментарии

    ingyaroslav
    Ще на рахунок файлу .htaccess для OpenCart 2.3 в мене спрацював ось такий дефолтний набір правил (замість MYDOMAIN.COM.UA потрібно прописати свій домен в нижньому регістрі):


    # 1.To use URL Alias you need to be running apache with mod_rewrite enabled.
    # 2. In your opencart directory rename htaccess.txt to .htaccess.
    # For any support issues please visit: http://www.opencart.com

    Options
    +FollowSymlinks

    # Prevent Directoy listing
    Options -Indexes

    # Prevent Direct Access to files
    <FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
    Require all denied
    ## For apache 2.2 and older, replace "Require all denied" with these two lines :
    # Order deny,allow
    # Deny from all
    </FilesMatch>

    # SEO URL Settings
    RewriteEngine On
    # If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

    RewriteEngine On
    RewriteBase /
    RewriteRule ^/?sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
    RewriteRule ^/?googlebase.xml$ index.php?route=extension/feed/google_base [L]
    RewriteRule ^/?system/download/(.*) index.php?route=error/not_found [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
    RewriteRule ^/?([^/?]*) index.php?_route_=$1 [L,QSA]

    RewriteCond %{QUERY_STRING} ^/?route=product/manufacturer$
    RewriteRule ^/?(.*)$ https://MYDOMAIN.COM.UA/? [R=301,NC,L]