Detener WordPress para que use HTTP en lugar de HTTPS
Hoy sincronicé una base de datos de un sitio web de desarrollo con una base de datos de un sitio web de producción.
Ahora, mi sitio web de desarrollo muestra un error "404 No Encontrado". La URL comienza con HTTPS, y hay una línea roja que atraviesa el texto HTTPS. La página 404 dice "El servidor no puede encontrar la página solicitada: dev.greenbee-web.com/ilaimh/wp-admin/ (puerto 443). Servidor Apache en dev.greenbee-web.com Puerto 443".
No me di cuenta de que el sitio web de producción usa HTTPS (soy un empleado y no soy el único que trabaja en este sitio web). Esto hizo que el sitio web de desarrollo ahora use HTTPS, pero quiero que use HTTP. No puedo encontrar dónde, en ninguno de los archivos de configuración de WordPress, puedo hacer que el sitio web de desarrollo vuelva a usar HTTP.
¿Hay alguna configuración en wp-config que esté forzando mi sitio de desarrollo a usar HTTPS? Si no está en wp-config, ¿dónde está la configuración que está forzando al sitio a usar HTTPS?
Gracias

Hay 2 cosas que debes hacer.
Si estás usando un servidor Apache, ve al archivo .htaccess y cambia el motor Rewrite y RewriteBase a:
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]
Si estás usando Nginx, algo como esto debería funcionar:
server {
listen 80 443;
server_name example.com;
# agregar configuraciones SSL
return 301 https://example.com$request_uri;
}
Esto redirigirá el https a http.
Y ve a la base de datos a través de phpmyadmin o lo que uses, ve a wp_options y busca y cambia los valores de siteurl y home de https://example.com a http://example.com.
Limpia tu caché e intenta de nuevo. Debería funcionar sin problemas. Si el sitio sigue solicitando SSL, revisa tu archivo wp-config.php para ver si tiene este código:
define('FORCE_SSL_ADMIN', true);
luego cambia el 'true' por 'false'.
Espero que esto te ayude.

En mi caso, se resolvió con tu última sugerencia, comentando estas líneas:
//define( 'FORCE_SSL_LOGIN', 1 );
//define( 'FORCE_SSL_ADMIN', 1 );

Hay un par de factores a considerar aquí.
En primer lugar, quizás quieras revisar la configuración del sitio en wp_options (o wp_X_options si estás en una configuración multisitio), especialmente los valores de:
- home
- siteurl
Las otras tablas que deberías revisar son:
- wp_blogs
- wp_domain_mapping
- wp_options
- wp_site
- wp_sitemeta
No sé qué tipo de sistema usáis para sincronizar vuestra base de datos de desarrollo con la de producción, pero nosotros tenemos un script SQL que ejecutamos después de clonar un subconjunto de la base de datos de producción.
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");
Reemplaza wp_dev
con tu base de datos local, y produrl.com
y devurl.com
según sea necesario. Pero ten en cuenta que esto cambia las URLs internas de HTTPS a HTTP.
Finalmente, puede que necesites cambiar tu configuración local de WP, y actualizar estos dos ajustes:
define('FORCE_SSL_LOGIN', false);
define('FORCE_SSL_ADMIN', false);

Gracias Loic. Estoy usando BackupBuddy para copiar mis sitios web activos y restaurarlos en WAMP. Uno de los sitios seguía intentando usar HTTPS. He estado tratando de instalar un certificado en WAMP local sin éxito.
Revisé el directorio de mi sitio restaurado localmente y eliminé la carpeta simple ssl.
¡Boom! Ahora funciona y se mantiene en HTTP.
Vaya, eso fue demasiado fácil. Gracias de nuevo.

Si el balanceador de carga termina SSL (https), WordPress recibirá tráfico HTTP y redirigirá a HTTPS, aunque el tráfico hacia el balanceador sea HTTPS, lo que resulta en una redirección infinita.
Para solucionar esto, tengo esto en mi wp-config.php:
$_SERVER['HTTPS'] = 'on';
O un poco más complicado (para instalaciones personalizadas):
if (getenv('use_ssl')) {
$_SERVER['HTTPS'] = 'on';
}

Eso es cierto, y hay una nota sobre eso en la documentación de WordPress también: Administración sobre SSL. Allí prueban un encabezado común establecido por el balanceador de carga.

Tu entorno de desarrollo y de staging siempre debe coincidir lo máximo posible con el entorno de producción. No utilizar el mismo protocolo es una desviación muy grande que ni siquiera está justificada de ninguna manera.
Ya que es tu organización, simplemente instala el mismo certificado en tu entorno de desarrollo, o si está vinculado a una IP específica por alguna razón, genera uno nuevo para tu entorno de desarrollo.

@naomi Estoy realmente sorprendido que en esta época donde todo es HTTPS todavía haya sugerencias de que tiene sentido intentar soportar HTTP. La única respuesta verdadera es corregir el entorno de desarrollo

La pregunta era cómo evitar que WP fuerce SSL. Llegué a esto porque tuve este problema con sitios locales en mi portátil.

Sí, el desarrollo local sufre con el uso de HTTPS, pero si no usas HTTPS ¿cómo sabes que tus recursos se cargan correctamente? Si, como el OP, tienes la confianza del dueño del sitio, puedes pedirle su certificado y configurar adecuadamente el dominio y el certificado en tu portátil
