Godaddy: Sådan finder du .htaccess-fil (nemmeste måde)

Det ser ud til, at .htaccess ikke omdirigerer mine sider fra http til https. Mit domæne omdirigeres til https, men ikke mine sider ... Kan det være en dårlig konfiguration fra min webhost?

Her er hvad jeg har gjort indtil nu:

  • Vælg et SSL-certifikat og installer det på min hjemmeside fra værten.
  • Tving wp-config til at passere fra HTTP til HTTP'er med: define ('FORCE_SSL_ADMIN', true);
  • Tranformere alle mine webadresser til HTTP'er med Erstat og søg DB
  • Føj dette domæne til Google Search Console ...

Sæt denne kode i min .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]  

Jeg tror, ​​det er alt ... Vil du have en idé om, hvad der kan forårsage dette problem?

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

Det HTTP_HOST variabel indeholder kun værtsnavn, ikke den ordning + værtsnavn, så dette vil aldrig matche. Hvis dette aldrig stemmer overens, omdirigeres det aldrig http://example.com/... til HTTPS. (Du har dog brugt dette korrekt i din sekund regel blokere hvilken vilje omdirigere http://www.example.com/... til HTTPS.)

Jeg antager, at du kun har et domæne? I så fald bør dette direktiv blot fjernes (ikke berigtiges).

RewriteCond %{HTTPS} =off [OR] 

Du har dog også en fejlagtig OR flag på den sidste RewriteCond direktiv. Hvis de eller de foregående betingelser matchede, ville dette resultere i en omdirigeringssløjfe, da det i det væsentlige er OR true, som er altid sand.

Resumé

# 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] 

Så alt sammen, skal du erstatte den første regelblok (ovenfor) med følgende:

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

Der er ingen mening med at kontrollere begge dele SERVER_PORT og HTTPS. Enten skal være tilstrækkelig; ikke begge dele.

  • 1 Mange tak, det fungerer! Du har helt ret, jeg er ny på .htaccess, og jeg så ikke disse fejl, selv efter flere timer ... Tak også for dine forklaringer. Det er meget klarere nu. :)

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?

nyttige oplysninger