Godaddy: How to Find .htaccess File (Easiest Way)

Vypadá to, že .htaccess nepřesměrovává moje stránky z http na https. Moje doména je přesměrována na https, ale ne na mé stránky ... Může to být špatná konfigurace z mého hostitele webu?

Tady je to, co jsem dosud dělal:

  • Vyberte certifikát SSL a nainstalujte ho na můj web z hostitele.
  • Vynutit wp-config k přechodu z HTTP na HTTP pomocí: define ('FORCE_SSL_ADMIN', true);
  • Transformovat všechny mé adresy URL na HTTP pomocí Replace and Search DB
  • Přidat tuto doménu do Google Search Console…

Vložte tento kód do mého .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]  

Myslím, že je to všechno ... Máte představu o tom, co může způsobit tento problém?

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

The HTTP_HOST proměnná obsahuje pouze název hostitele, ne systém + název hostitele, takže se to nikdy neshoduje. Pokud se to nikdy neshoduje, nebude nikdy přesměrováno http://example.com/... na HTTPS. (Toto jste však správně použili ve svém druhý pravidlo blok, které vůle přesměrovat http://www.example.com/... na HTTPS.)

Předpokládám, že máte pouze jednu doménu? V takovém případě by měla být tato směrnice jednoduše odstraněna (neopravena).

RewriteCond %{HTTPS} =off [OR] 

Máte však také chybu OR vlajka na poslední RewriteCond směrnice. Pokud by se předchozí podmínky shodovaly, mělo by to za následek smyčku přesměrování, protože je to v podstatě OR true, který je vždy skutečný.

souhrn

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

Stručně řečeno, měli byste nahradit první blok pravidel (výše) tímto:

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

Nemá smysl kontrolovat obojí SERVER_PORT a HTTPS. Buď by mělo stačit; ne obojí.

  • 1 Moc děkuji, funguje to! Máte úplnou pravdu, jsem nový .htaccess a neviděl jsem tyto chyby, ani po několika hodinách ... Děkuji také za vaše vysvětlení. Nyní je to mnohem jasnější. :)

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?

užitečné informace