Tundub, et .htaccess ei suunata minu lehti http-ist https-i. Minu domeen suunatakse aadressile https, kuid mitte minu lehtedele ... Kas see võib olla minu veebihalduri vale konfiguratsioon?

Siit olen teinud siiani:

  • Valige SSL-sertifikaat ja installige see hostilt minu veebisaidile.
  • Sundige wp-config HTTP-st HTTP-desse edastamiseks järgmisega: define ('FORCE_SSL_ADMIN', tõene);
  • Teisendage kõik minu URL-id HTTP-deks asendamise ja otsingu DB-ga
  • Lisage see domeen Google Search Console'i ​​...

Pange see kood minu .htaccess'i:

 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]  

Ma arvan, et see on kõik ... Kas teil oleks aimu, mis võib selle probleemi põhjustada?

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

The HTTP_HOST muutuja sisaldab ainult hostinimi, mitte skeem + hostinimi, nii et see ei sobi kunagi. Kui see kunagi ei ühti, ei suunata seda kunagi ümber http://example.com/... HTTPS-i. (Te olete seda siiski õigesti kasutanud teine reegliblokk, mis tahe ümbersuunamine http://www.example.com/... HTTPS-i.)

Oletan, et teil on ainult üks domeen? Sel juhul tuleks see direktiiv lihtsalt eemaldada (mitte parandada).

RewriteCond %{HTTPS} =off [OR] 

Kuid teil on ka ekslik OR lipp viimasel RewriteCond direktiiv. Kui eelnev (ad) tingimus (ed) ühilduvad, siis selle tulemuseks on ümbersuunamisring, kuna see on sisuliselt OR true, mis on alati tõsi.

Kokkuvõte

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

Kokkuvõttes peaksite esimese reeglite ploki (ülaltoodud) asendama järgmisega:

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

Mõlemat pole mõtet kontrollida SERVER_PORT ja HTTPS. Mõlemast peaks piisama; mitte mõlemad.

  • 1 Suur aitäh, see töötab! Teil on täiesti õigus, ma olen .htaccessis uus ja ma ei näinud neid vigu isegi mitme tunni pärast ... Tänan teid ka selgituste eest. Nüüd on see palju selgem. :)

none: Charles Robertson | none