Как упоминалось в комментариях, в опубликованной вами конфигурации нет ничего, что могло бы вызвать это. В выложенном вами конфиге вообще нет редиректов. Скорее всего, это ошибка конфигурации вашей CMS (Prestashop).
Проблема, по-видимому, связана с перенаправлением HTTP на HTTPS, которое удаляет косую черту в начале URL-пути (сразу после имени хоста).
Однако вы можете «обойти» эту проблему, реализовав перенаправление с HTTP на HTTPS (и без www на www) в .htaccess
- что происходит до того, как ваша CMS сможет что-либо сделать. Таким образом, вашей CMS не нужно перенаправлять запрос.
Например, если у вас есть достаточно стандартный сервер, где SSL управляется сервером приложений (без SSL-прокси, такого как Cloudflare и т. д.), вы можете сделать что-то вроде следующего в самом верху .htaccess
файл, перед # ~~старт~~
комментарий.
# Перенаправление без www на www + HTTPS
RewriteCond %{HTTP_HOST} ^(пример\.com) [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L]
# Перенаправление HTTP на HTTPS (остальные запросы)
RewriteCond %{HTTPS} = выкл.
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
NB: сначала проверьте с 302 (временной) переадресацией, чтобы избежать потенциальных проблем с кэшированием.
ОБНОВИТЬ:
Я попытался добавить строки, которые вы написали выше, но ничего не изменилось.
Это будет означать, что у вас есть искаженный HTTP на HTTPS в самой конфигурации сервера (который выполняется до .htaccess
)
<VirtualHost *:80>
ServerName www.example.com
Redirect permanent / https://www.example.com
</VirtualHost>
Если это ваша фактическая конфигурация, то вам не хватает завершающей косой черты в целевом URL-адресе! Это приведет к неправильному перенаправлению (отсутствует косая черта после домена), которое вы видите.
Должен быть:
Перенаправление постоянное / https://www.example.com/
Вам нужно будет убедиться, что кеш браузера чист перед тестированием, так как ошибочное перенаправление будет закэшировано.