Будь ласка, не рекомендуйте мені довгий і дуже детальний потік з більш ніж 173 голосами проти. У мене це не спрацювало. Я також пробував багато інших ( 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 для навігаційних меню
- Контактна форма 7
- Вимкнути коментарі
- Google XML Sitemap
- Jetpack від WordPress.com
- Пошук і фільтр
- Повзунок WD
- TablePress
- UpdraftPlus - Резервне копіювання / відновлення
- Захист Wordfence
- WPide
- WP Smush
- WP Super Cache
Редагування 1 - Виконані тести:
Тест А:
<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
Тест С:
<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
Тест Е:
<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 внутрішньої помилки сервера.
.htaccess
неправильно написали (однаково) 3 рази? Ваш поточний файл .htaccess не завершений, вам не вистачаєRewriteEngine On
директиви. Імовірно, коли ви додаєте канонічне перенаправлення, ви додаєте це в самий верх вашого файлу .htaccess? Ви заявляєте, щоhttps://example.com
переспрямовує ОК, проте, це не вказано у вашому конфігураційному файлі? Де / як це відбувається? Було б корисно знати, що ви насправді пробували - це не працює.