Я не рекомендую перенаправлять пользователей в .htaccess.Вы должны сделать это в файле конфигурации для виртуального хоста, если это возможно, используя временное перенаправление или постоянное, если необходимо, для посетителей, пришедших с порта, отличного от http (например, 80).
Это может выглядеть примерно так:
<VirtualHost *:80>
ServerName mywebsite.com
ServerAlias www.mywebsite.com
DocumentRoot "/var/www/mywebsite.com"
Redirect / https://www.mywebsite.com/
</VirtualHost>
<VirtualHost *:443>
ServerName mywebsite.com
DocumentRoot "/var/www/mywebsite.com"
Redirect / https://www.mywebsite.com/
... SSL stuff
.... your https config for mywebsite here, with SSLCertificate, I believe you need a separate one for without www, to redirect to www.
</VirtualHost>
<VirtualHost *:443>
ServerName www.mywebsite.com
DocumentRoot "/var/www/mywebsite.com"
SSL STUFF****
</VirtualHost>
Тогда в .htaccess вам вообще не нужно ничего переписывать.
Я считаю, что проблема с другими ответами заключается в том, что вы переписывали расположение файла, когда оно должно быть в формате% {DOCUMENT_ROOT}% {REQUEST_URI}, поэтому у вас может быть обработчик ошибокотправив вас обратно на домашнюю страницу.Поэтому проверьте ваши журналы ошибок и журналы доступа.