Oprește WordPress să folosească HTTPS și utilizează doar HTTP

27 mar. 2016, 21:06:34
Vizualizări: 81.4K
Voturi: 10

Astăzi am sincronizat baza de date a unui site web de dezvoltare cu baza de date a unui site web de producție.

Acum, site-ul meu de dezvoltare afișează o eroare "404 Not Found". URL-ul începe cu HTTPS și există o linie roșie care taie textul HTTPS. Pagina 404 spune "Serverul nu poate găsi pagina solicitată: dev.greenbee-web.com/ilaimh/wp-admin/ (port 443). Apache Server la dev.greenbee-web.com Port 443".

Nu am realizat că site-ul de producție folosește HTTPS (sunt angajat și nu sunt singurul care lucrează la acest site web). Acest lucru a făcut ca site-ul de dezvoltare să folosească acum HTTPS, dar vreau să folosească HTTP. Nu pot să găsesc unde, în oricare dintre fișierele de configurare WordPress, pot face ca site-ul de dezvoltare să revină la utilizarea HTTP.

Există vreo setare în wp-config care forțează site-ul meu de dezvoltare să folosească HTTPS? Dacă nu în wp-config, unde se află setarea care forțează site-ul să folosească HTTPS?

Mulțumesc

3
Comentarii

mediile tale de dezvoltare și staging ar trebui să se potrivească cât mai mult cu mediul de producție. Folosirea unui protocol diferit este o abatere foarte mare care nu este justificată în niciun fel

Mark Kaplun Mark Kaplun
27 mar. 2016 21:34:10

salut… Mai întâi verifică în setările globale (câmpurile URL) din WordPress. După aceea, în majoritatea cazurilor, există un fișier (și unele plugin-uri) care ar putea fi legate de problema ta: în fișierul .htaccess situat în directorul principal al site-ului tău WordPress, trebuie să cauți ceva de genul RewriteRule ^(.*)$ https://www.siteultau.com/$1 [R,L]… De asemenea, unele plugin-uri de securitate sau plugin-uri "SSL" pot fi responsabile.

LoicTheAztec LoicTheAztec
28 mar. 2016 01:54:44

@MarkKaplun - acesta este un răspuns inacceptabil la întrebare. Te rog să explici, în detaliu, cum pot instala un certificat valid pentru un server dintr-o rețea locală cu un IP nerutabil sau cum să instalez un certificat SSL valid pe un server public pentru o adresă IP. Când treci de la dezvoltare la live, trebuie să schimbi toate URL-urile oricum.

Craig Jacobs Craig Jacobs
27 ian. 2019 21:23:41
Toate răspunsurile la întrebare 5
2
11

Sunt 2 lucruri pe care trebuie să le faci.

Dacă folosești server Apache, mergi în fișierul .htaccess și schimbă motorul Rewrite și RewriteBase în:

RewriteEngine On

RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Dacă folosești Nginx, ceva de genul ar trebui să funcționeze:

server {
   listen 80 443;
   server_name example.com;
   # adaugă setările ssl
   return 301 https://example.com$request_uri;
}

Aceasta va redirecționa de la https la http.

Și apoi mergi în baza de date prin phpmyadmin sau orice altceva folosești, accesează wp_options și găsește și schimbă valorile siteurl și home de la https://example.com la http://example.com.

Curăță cache-ul și încearcă din nou. Ar trebui să funcționeze fără probleme. Dacă site-ul încă cere SSL, verifică fișierul wp-config.php pentru a vedea dacă are acest cod:

define('FORCE_SSL_ADMIN', true);

apoi schimbă 'true' în 'false'.

Sper că acest lucru te ajută.

29 mar. 2016 11:47:02
Comentarii

În cazul meu s-a rezumat la ultima sugestie a ta, comentând aceste linii: //define( 'FORCE_SSL_LOGIN', 1 ); //define( 'FORCE_SSL_ADMIN', 1 );

TARKUS TARKUS
17 iul. 2018 01:37:15

pentru IIS, ce pot face pentru a dezactiva http? Am încercat să definesc define('FORCE_SSL_ADMIN', true); dar nu a funcționat

Malcolm Salvador Malcolm Salvador
13 mar. 2020 20:14:14
0

Există câteva factori de luat în considerare aici.

În primul rând, ai putea verifica setările site-ului în wp_options (sau wp_X_options dacă folosești o configurație multisite), în special valorile pentru:

  • home
  • siteurl

Alte tabele pe care ar trebui să le verifici sunt:

  • wp_blogs
  • wp_domain_mapping
  • wp_options
  • wp_site
  • wp_sitemeta

Nu știu ce sistem folosiți pentru sincronizarea bazei de date de dezvoltare cu cea de producție, dar noi avem un script SQL pe care îl rulăm după ce clonăm un subset din baza de date de producție.

UPDATE wp_dev.wp_blogs SET domain = REPLACE(domain, "https://produrl.com", "http://devurl.com");
UPDATE wp_dev.wp_domain_mapping SET domain = REPLACE(domain, "https://produrl.com", "http://devurl.com");
UPDATE wp_dev.wp_options SET option_value = REPLACE(option_value, "https://produrl.com", "http://devurl.com");
UPDATE wp_dev.wp_site SET domain = REPLACE(domain, "https://produrl.com", "http://devurl.com");
UPDATE wp_dev.wp_sitemeta SET meta_value = REPLACE(meta_value, "https://produrl.com", "http://devurl.com");

Înlocuiește wp_dev cu baza ta de date locală și produrl.com și devurl.com după necesitate. Dar observă că acest lucru schimbă URL-urile interne de la HTTPS la HTTP.

În final, poate fi necesar să modifici configurația locală WordPress și să actualizezi aceste două setări:

define('FORCE_SSL_LOGIN', false);
define('FORCE_SSL_ADMIN', false);
16 oct. 2018 01:44:59
0

Mulțumesc Loic. Folosesc BackupBuddy pentru a copia site-urile mele active și a le restaura pe WAMP. Unul dintre site-uri încerca constant să folosească HTTPS. Am încercat să instalez un certificat pe WAMP local fără succes.

Am verificat directorul site-ului restaurat local și am șters folderul simple ssl.

Boom. Acum funcționează și rămâne pe HTTP.

Doamne, a fost atât de simplu. Mulțumesc din nou.

4 mar. 2019 01:07:38
2

Dacă balansatorul de sarcină termină SSL (https), atunci WordPress va primi trafic HTTP și va redirecționa către https, chiar dacă traficul către LB este https, rezultând într-o redirecționare infinită.

Pentru a rezolva această problemă, am adăugat următoarele în fișierul meu wp-config.php:

  $_SERVER['HTTPS'] = 'on';

Sau o variantă puțin mai complexă (pentru instalări personalizate):

  if (getenv('use_ssl')) {
    $_SERVER['HTTPS'] = 'on';
  }
24 iun. 2022 01:10:54
Comentarii

Asta este adevărat și există o notă despre asta și în documentația WordPress: Administrare prin SSL. Acolo testează un antet comun setat de balansatorul de sarcină.

Rup Rup
24 iun. 2022 03:04:04

(Nu sunt sigur că despre asta este vorba în această întrebare.)

Rup Rup
24 iun. 2022 03:04:18
4
-3

Mediile de dezvoltare și staging ar trebui să corespundă cât mai mult posibil mediului de producție. Folosirea unui protocol diferit este o abatere foarte mare care nu poate fi justificată în niciun fel.

Deoarece este organizația dumneavoastră, instalați pur și simplu același certificat în mediul de dezvoltare sau, dacă acesta este legat de o anumită adresă IP din anumite motive, generați unul nou pentru mediul de dezvoltare.

5 sept. 2017 11:34:57
Comentarii

Am votat negativ pentru că acest lucru nu răspunde la întrebare.

naomi naomi
26 feb. 2020 16:13:04

@naomi Sunt cu adevărat surprins că în această epocă când totul este HTTPS, există sugestia că ar avea sens să încerci să suporți HTTP. Singurul răspuns adevărat este să repari mediul de dezvoltare

Mark Kaplun Mark Kaplun
2 mar. 2020 16:07:53

Întrebarea era cum să oprești WP din forțarea SSL. Am ajuns la ea pentru că am avut această problemă cu site-uri locale pe laptopul meu.

naomi naomi
2 mar. 2020 17:31:46

Da, dezvoltarea locală este afectată de utilizarea HTTPS-ului, dar dacă nu folosești HTTPS cum poți fi sigur că resursele tale sunt încărcate corect? Dacă, ca și OP, ai încrederea proprietarului site-ului, poți cere să obții certificatul acestuia și să configurezi corect domeniul și certificatul pe laptopul tău

Mark Kaplun Mark Kaplun
3 mar. 2020 18:52:23