Я пытаюсь защитить свой API, который использует фреймворк Slim и использует файл htaccess для перенаправления всего трафика на index.php, что позволяет API работать.
Например, вызов http://api.mydomainname.co.uk/expert/id=MB7763255 отлично работает со следующими настройками в htaccess:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
Теперь я пытаюсь принудительно направить весь HTTP-трафик на HTTPS, и я пробовал много вариантов в файле htaccess, которые перенаправляют трафик, но затем останавливают работу моей веб-службы, показывая «404 не найден».
Вот что я пробовал:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Или...
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%/index.php [R=301,L]
Оба безуспешны - может ли кто-нибудь указать мне правильное направление, пожалуйста, поскольку я исчерпал Stack Overflow и Google.





Починил это! Я отправлю это всем, у кого возникнет такая же проблема.
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]