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 хвилин, поки зміни набудуть чинності.
Зміст

    (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]