Пожалуйста, не рекомендуется мне длинный и очень подробный поток с более чем 173 upvotes. Это не сработало для меня. Я также пробовал много других (1, 2, 3, 4). Все они дают мне TOO_MANY_REDIRECTS или ошибку 500. Итак, вот моя проблема:
С моим текущим .htaccess, это то, что происходит:
https://www.dukescasino.com/ - отлично работает
https://dukescasino.com/ - перенаправляет на описанное выше замечательное
Два параметра ниже загружаются нормально, но он должен быть перенаправлен на версию https:
Вот текущий .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Я не считаю, что это актуально, но если это так, вот список текущих активных плагинов:
- Дополнительные пользовательские поля
- Все в одном пакете SEO
- Bop Search Box Тип элемента для навигационных меню
- Контактная форма 7
- Отключить комментарии
- Google XML Sitemaps
- Jetpack by WordPress.com
- Поиск и фильтрация
- Ползунок WD
- TablePress
- UpdraftPlus - Резервное копирование/восстановление
- Безопасность Wordfence
- WPide
- WP Smush
- WP Super Cache
Изменить 1 - Выполненные тесты:
Тест A:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
# First rewrite to HTTPS:
# Don't put www. here. If it is already there it will be included, if not
# the subsequent rule will catch it.
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Результат: ERR_TOO_MANY_REDIRECTS
Тест B:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Результат: ERR_TOO_MANY_REDIRECTS
Тест C:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Результат: ERR_TOO_MANY_REDIRECTS
Тест D:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Результат: ERR_TOO_MANY_REDIRECTS
Тест E:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI}$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}$1
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Результат: найдено 302. Кроме того, при попытке использовать ErrorDocument для обработки запроса была обнаружена ошибка 500 Internal Server Error.