Oprește WordPress să folosească HTTPS și utilizează doar HTTP
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

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ă.

Î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 );

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);

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.

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';
}

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ă.

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.

@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

Î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.

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
