La REST API WordPress non disponibile può impedire all’editor a blocchi, a Site Health, alle applicazioni esterne e a molti plugin di comunicare con il sito. L’endpoint di base è normalmente `/wp-json/`, ma il suo comportamento dipende da permalink, autenticazione e regole di sicurezza.
Questa guida approfondisce REST API WordPress non disponibile con una procedura progressiva e reversibile. Non inviare password, codici 2FA, token, chiavi private o file di configurazione completi nei ticket.
Che cosa significa
Una risposta JSON pubblica per contenuti pubblici è normale. Le operazioni riservate richiedono autenticazione e permessi appropriati.
Bloccare interamente la REST API può rompere funzioni del core. È preferibile limitare endpoint o accessi specifici quando esiste una necessità reale.
Come riconoscere il problema
- Site Health segnala errore REST API.
- L’editor mostra aggiornamento fallito.
- `/wp-json/` restituisce 404, 403 o redirect.
- Un plugin non comunica con WordPress.
- Le richieste autenticate ricevono rest_forbidden.
Cause più frequenti
1. Permalink non rigenerati
Le regole rewrite non instradano `/wp-json/`. Verifica questa ipotesi usando il messaggio completo e i dati dell’orario interessato, senza basarti soltanto sul testo mostrato dal browser o dall’applicazione.
2. Plugin di sicurezza
Un componente blocca endpoint o utenti non autenticati. Verifica questa ipotesi usando il messaggio completo e i dati dell’orario interessato, senza basarti soltanto sul testo mostrato dal browser o dall’applicazione.
3. WAF o ModSecurity
Parametri JSON e metodi HTTP vengono filtrati. Verifica questa ipotesi usando il messaggio completo e i dati dell’orario interessato, senza basarti soltanto sul testo mostrato dal browser o dall’applicazione.
4. Redirect
HTTP/HTTPS o www creano loop o cambiano host. Verifica questa ipotesi usando il messaggio completo e i dati dell’orario interessato, senza basarti soltanto sul testo mostrato dal browser o dall’applicazione.
5. Errore PHP
La richiesta REST termina con 500 o output non JSON. Verifica questa ipotesi usando il messaggio completo e i dati dell’orario interessato, senza basarti soltanto sul testo mostrato dal browser o dall’applicazione.
6. Autenticazione o nonce
L’utente non ha permessi o il nonce è scaduto. Verifica questa ipotesi usando il messaggio completo e i dati dell’orario interessato, senza basarti soltanto sul testo mostrato dal browser o dall’applicazione.
Diagnosi passo per passo
- Apri l’indice. Visita `/wp-json/` e registra codice e contenuto. Salva il risultato e confrontalo con il passaggio successivo; in questo modo potrai distinguere una causa locale da una configurazione del servizio.
- Controlla Site Health. Leggi endpoint e messaggio completo. Salva il risultato e confrontalo con il passaggio successivo; in questo modo potrai distinguere una causa locale da una configurazione del servizio.
- Rigenera permalink. Salva la struttura dopo backup di .htaccess. Salva il risultato e confrontalo con il passaggio successivo; in questo modo potrai distinguere una causa locale da una configurazione del servizio.
- Controlla log. Cerca fatal error e ModSecurity. Salva il risultato e confrontalo con il passaggio successivo; in questo modo potrai distinguere una causa locale da una configurazione del servizio.
- Verifica plugin di sicurezza. Prova in staging o disattiva una sola regola. Salva il risultato e confrontalo con il passaggio successivo; in questo modo potrai distinguere una causa locale da una configurazione del servizio.
- Controlla redirect e URL. home e siteurl devono essere coerenti. Salva il risultato e confrontalo con il passaggio successivo; in questo modo potrai distinguere una causa locale da una configurazione del servizio.
- Testa autenticazione. Distingui endpoint pubblico da operazione riservata. Salva il risultato e confrontalo con il passaggio successivo; in questo modo potrai distinguere una causa locale da una configurazione del servizio.
Metodo sicuro di intervento
Prima di modificare la configurazione, registra lo stato iniziale: indirizzo o funzione coinvolta, messaggio completo, data e ora, ultima modifica nota e risultato da un secondo dispositivo, rete o strumento. Una diagnosi ripetibile è più utile di molti tentativi eseguiti contemporaneamente.
Applica una sola correzione alla volta e conserva una copia dei file, dei record o dei valori precedenti. Dopo ogni intervento ripeti esattamente il test originale e controlla i log relativi allo stesso intervallo temporale. Se il risultato cambia, annota quale modifica lo ha prodotto.
Evita disattivazioni globali di firewall, WAF, TLS, cache o sistemi di sicurezza. Quando serve una eccezione, deve essere limitata all’URL, al parametro, al processo o al servizio realmente interessato.
Procedura di risoluzione
- Ripristina rewrite. Rigenera .htaccess o regole del web server. Dopo la modifica ripeti lo stesso test, controlla il log e verifica che non siano comparsi effetti collaterali.
- Correggi il plugin. Aggiorna o configura l’eccezione minima. Dopo la modifica ripeti lo stesso test, controlla il log e verifica che non siano comparsi effetti collaterali.
- Richiedi analisi WAF. Fornisci endpoint, metodo, orario e rule id. Dopo la modifica ripeti lo stesso test, controlla il log e verifica che non siano comparsi effetti collaterali.
- Allinea URL. Correggi protocollo e hostname. Dopo la modifica ripeti lo stesso test, controlla il log e verifica che non siano comparsi effetti collaterali.
- Risolve l’errore PHP. Intervieni sul componente indicato dal log. Dopo la modifica ripeti lo stesso test, controlla il log e verifica che non siano comparsi effetti collaterali.
- Usa autenticazione supportata. Nonce per sessioni WordPress o Application Passwords su HTTPS per integrazioni compatibili. Dopo la modifica ripeti lo stesso test, controlla il log e verifica che non siano comparsi effetti collaterali.
- Limita senza bloccare il core. Proteggi endpoint sensibili invece dell’intera API. Dopo la modifica ripeti lo stesso test, controlla il log e verifica che non siano comparsi effetti collaterali.
Controlli finali
- `/wp-json/` restituisce JSON.
- Site Health supera il test.
- Editor salva gli articoli.
- Endpoint protetti richiedono autenticazione.
- Nessun errore nel log.
Prevenzione
- Aggiorna plugin di sicurezza.
- Testa regole WAF.
- Mantieni permalink corretti.
- Usa HTTPS.
- Documenta integrazioni REST.
Errori da evitare
- Non bloccare globalmente `/wp-json/`.
- Non rendere pubblici endpoint privati.
- Non disattivare nonce o permessi.
- Non cancellare .htaccess senza backup.
- Non confondere 401, 403 e 404.
Come documentare la verifica
Conserva una breve nota con configurazione iniziale, risultato di ogni controllo e modifica applicata. Inserisci sempre data e ora, perché cache, log, code, rate limit e processi pianificati possono cambiare nel tempo. Questa documentazione facilita il rollback e permette all’assistenza di evitare verifiche già eseguite.
Quando confronti due test, usa le stesse condizioni: stesso URL o destinatario, stesso file, stesso client e stessa rete quando possibile. Se cambi più variabili, il risultato non permette di individuare con certezza la causa.
Controllo incrociato
Dopo la correzione esegui almeno un controllo indipendente. Per un sito confronta browser, risposta HTTP e log; per DNS interroga autoritativo e resolver pubblico; per la posta confronta Webmail, intestazioni e Track Delivery; per PHP verifica il valore effettivamente applicato al dominio. Un solo indicatore può essere influenzato da cache o configurazioni locali.
Se il problema ricompare, evita ulteriori modifiche e raccogli nuovamente i dati. La ricorrenza può indicare un processo pianificato, un limite raggiunto, una dipendenza esterna o una configurazione che viene rigenerata automaticamente.
Quando contattare l’assistenza Xlogic
Apri un ticket quando il problema persiste dopo i controlli di base, coinvolge più servizi oppure richiede log e configurazioni non disponibili nel pannello. Indica:
- endpoint
- metodo HTTP
- codice risposta
- orario
- plugin e rule id
Non inviare credenziali. Per iniziare la diagnosi sono sufficienti dati tecnici, orari, URL, codici e messaggi di errore.
Fonti tecniche ufficiali
Domande frequenti su REST API WordPress non disponibile
È normale che `/wp-json/` sia visibile?
Sì, l’indice e i contenuti pubblici possono essere accessibili; le operazioni riservate richiedono permessi.
Bloccare la REST API migliora la sicurezza?
Un blocco totale può rompere WordPress. Meglio proteggere endpoint e autenticazione.
Perché l’editor a blocchi dipende dalla REST API?
Usa richieste REST per leggere e salvare dati.
Un errore 404 può dipendere dai permalink?
Sì, se le regole rewrite non instradano l’endpoint.
Quali dati servono al supporto?
Endpoint, metodo, codice, orario, log e plugin di sicurezza coinvolti.