Apache .htaccess работает отлично, 404 с Litespeed

Я использую Litespeed на виртуальном хостинге (к сожалению), и я пытаюсь использовать.htaccess, чтобы переписать http в https NON www - и изменить domain.com/index в domain.com/my-string для целей SEO.

Это работает нормально в Apache, и я не знал, что мой общий хост использовал Litespeed. Я использую тот же.htaccess на litespeed, что приводит к 404, несмотря на правильное имя файла.

Вот мой htaccess:

DirectoryIndex my-string.php

Options +Indexes
Options +FollowSymlinks
RewriteEngine on
RewriteBase /

RewriteRule ^$ my-string [L]

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteRule ^my-string$ /my-string.php [L]

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php56” package as the default “PHP” programming language.
<IfModule mime_module>
  AddType application/x-httpd-ea-php56 .php .php5 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit

Нижний раздел был добавлен моим хозяином.

Это работает правильно в Apache, выполняет перенаправление 301 с http non www или http www на https non www с моей строкой в ​​конце URL вместо индекса.

Насколько я понимаю, Litespeed использует тот же синтаксис, что и Apache, так почему же это происходит?

1 ответ

Раздел комментариев заполнен, поэтому я связываю свой соответствующий ответ:

https://serverfault.com/a/1083495/144798

Чтобы локальный .htaccess работал на Openlitespeed, вы сначала должны сгенерировать эти файлы, А затем указать на эти файлы на каждом виртуальном хосте И обеспечить правильные разрешения. Если вы этого не сделаете, ваши сайты могут выйти из строя (фатальные ошибки и/или ошибки 404, подобные этой). Кроме того, вам придется перезагружать сервер Litespeed каждый раз, когда вы меняете правила .htaccess.

Другие вопросы по тегам