Tengo un sitio multisitio de WP en AWS que ejecuta un servidor basado en nginx. También tiene habilitado el escalado automático. Por alguna razón, y solo para algunas páginas (principalmente tipos de publicaciones personalizadas), después de cada implementación, estos CPT arrojarán un error 404.
Luego necesito ir manualmente a la configuración, ir a los enlaces permanentes y simplemente volver a guardar la estructura del enlace permanente para activar la limpieza de la regla de reescritura.
Ahora, como estamos implementando el sitio usando codedeploy, agregué un script wpcli que lo hará por mí.
exec("~/bin/wp site list --json --field=url", $siteOuput, $return);$siteList = json_decode($siteOuput[0], true);
foreach($siteList as $siteUrl) {
exec("~/bin/wp rewrite flush --url=$siteUrl", $permalinkOutput, $return);
}
Esto aparentemente funciona (tenemos un registro donde dice que la eliminación de enlaces permanentes fue exitosa para los sitios). Sin embargo, este no parece ser el caso. Cuando accedo a un CPT, arroja un error 404 y necesito ir manualmente a la configuración y volver a guardar los enlaces permanentes.
Las reglas de reescritura se establecen en la base de datos, por lo que esto es muy confuso. Además, la eliminación de enlaces permanentes de wpcli obviamente no funciona, así que ¿existe una diferencia entre el contexto web y el de CLI?
Intenté activar una llamada a una ruta de descanso que tenía la lógica para vaciar los enlaces permanentes, pero eso tampoco funcionó (nuevamente aquí sospeché que esto no funcionará desde el contexto de la API de descanso).
¿Alguien tiene idea de cuál podría ser el problema y cómo solucionarlo? El problema principal es que cuando se produce un evento de escalado automático, los enlaces permanentes desaparecen :S