Godaddy: Как да намерите .htaccess файл (най-лесният начин)

Изглежда, че .htaccess не пренасочва страниците ми от http към https. Моят домейн е пренасочен към https, но не и към моите страници ... Може ли това да е лоша конфигурация от моя уеб хост?

Ето какво направих досега:

  • Изберете SSL сертификат и го инсталирайте на моя уебсайт от хоста.
  • Принуди wp-config да преминава от HTTP към HTTPs с: define ('FORCE_SSL_ADMIN', true);
  • Преобразувайте всичките ми URL адреси в HTTP с Replace and Search DB
  • Добавете този домейн към Google Search Console ...

Поставете този код в моя .htaccess:

 RewriteEngine On # Redirect to HTTPS RewriteCond %{HTTP_HOST} ^http://example\.com [NC] RewriteCond %{SERVER_PORT} ^80$ [OR] RewriteCond %{HTTPS} =off [OR] RewriteRule ^(.*)$ https://example.com/$1 [L,R=301] # Redirect from www HTTPS to HTTPS RewriteCond %{HTTP_HOST} ^www\.example\.com [NC] RewriteRule ^(.*)$ https://example.com/$1 [L,R=301] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]  

Мисля, че това е всичко ... Бихте ли имали представа какво може да причини този проблем?

RewriteCond %{HTTP_HOST} ^http://example\.com [NC] 

The HTTP_HOST променливата съдържа само име на хост, не е схема + име на хост, така че това никога няма да съвпадне. Ако това никога не съвпада, то никога няма да пренасочи http://example.com/... към HTTPS. (Вие обаче сте използвали това правилно във вашия второ правило блок който ще пренасочване http://www.example.com/... към HTTPS.)

Предполагам, че имате само един домейн? В този случай тази директива трябва просто да бъде премахната (не коригирана).

RewriteCond %{HTTPS} =off [OR] 

Имате обаче и грешка OR флаг на последния RewriteCond директива. Ако предходното (ите) условие (и) съвпадат, това би довело до пренасочване, тъй като по същество е OR true, кое е винаги вярно.

Обобщение

# Redirect to HTTPS RewriteCond %{HTTP_HOST} ^http://example\.com [NC] RewriteCond %{SERVER_PORT} ^80$ [OR] RewriteCond %{HTTPS} =off [OR] RewriteRule ^(.*)$ https://example.com/$1 [L,R=301] 

Така че, накратко, трябва да замените първия блок с правила (по-горе) със следното:

# Redirect to HTTPS RewriteCond %{HTTPS} =off RewriteRule ^(.*)$ https://example.com/$1 [L,R=301] 

Няма смисъл да проверявате и двете SERVER_PORT и HTTPS. И двете трябва да са достатъчни; не и двете.

  • 1 Благодаря ви много, работи! Напълно сте прав, аз съм нов в .htaccess и не видях тези грешки, дори след няколко часа ... Благодаря и за вашите обяснения. Сега е много по-ясно. :)

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?