У меня есть приложение для реагирования, опубликованное в Интернете. У меня есть решение, предложенное путем реагирования на перенаправление всех страниц на index.html, которое, похоже, само по себе работает нормально. Еще мне нужно все перенаправить на https: // www. Вот здесь все начинает разваливаться. Я могу найти отрывки из статей, например: перенаправление реактивного маршрутизатора на index.html И удаление www из URL-адреса в .htaccess
Они предоставляют полезную информацию, но я все еще застреваю в ситуации, когда в определенных ситуациях я получаю петли перенаправления. Я надеюсь, что кто-то с гораздо более высокими навыками переписывания сможет указать на мои ошибки. Не знаю, имеет ли это значение, но я использую «react-dom»: «^ 16.3.2», «react-router-dom»: «^ 4.2.2», «webpack»: «^ 4.8.1. "
Вот что я придумал:
Options -MultiViews
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www\.%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^. index.html [QSA,L]
@anubhava На самом деле я получаю цикл перенаправления как на www, так и на https. Как есть, он работает только с действующим правилом index.html. Как только я добавляю правило www и https, я попадаю в цикл перенаправления.
Эти правила не вызовут цикл перенаправления, если нет другого конфликтующего кода / правила.





Некоторые тонкие различия, которые могут улучшить ситуацию:
Options -MultiViews
RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+) [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=302,L,NE]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www\.%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.html [END]
Первое изменение предотвращает двойное перенаправление, шаблоны более простые, и, наконец, перезапись прекращается как можно скорее. Если это сработает, замените ваши 302 на 301.
«Я получаю петли перенаправления в определенных ситуациях»: для каких URL вы получаете цикл перенаправления и тестировали ли вы в новом браузере?