Modifica della posizione dei media WordPress e del percorso di upload su un sottodominio non funziona
Sto cercando di cambiare la posizione di tutti i media di WordPress su un sottodominio situato sopra la root del sito, cioè sopra public_html. Ho aggiornato le impostazioni del file wp-config.php
con:
define('UPLOADS', 'https://cdn.miosito.com/media');
E ho aggiornato gli URL delle immagini per i post esistenti utilizzando lo strumento di ricerca e sostituzione di PHPmyAdmin, ad esempio, tutti gli
miosito.com/wp-content/uploads/
URL sono stati modificati incdn.miosito.com/media/
Ho anche aggiornato la tabella wp-options, i campi del percorso di upload e del percorso URL di upload come segue:
- percorso di upload
/myserverroot/user/cdn/media
- percorso URL di upload
https://cdn.miosito.com/media/
Tuttavia, quando aggiorno le pagine web vedo che tutti i media mancano, e quando controllo il tag HTML IMG vedo che l'URL src è preceduto dall'URL base del sito come segue:
img src="https:// miosito.com/https://cdn.miosito.com/media/2019/9/immagine.jpg"
Qualcuno ha idea di quale potrebbe essere la causa? Grazie mille.

Questo non funzionerà nel modo in cui pensi. WordPress cercherà di caricare gli allegati (immagini, pdf, ecc.) sul tuo server utilizzando la costante UPLOADS
, questo percorso è un percorso di file, locale al server.
Se desideri utilizzare un CDN puoi ottenere un servizio CDN per farlo (gestire i file e caricarli in remoto sul loro servizio) o eventualmente utilizzare uno strumento come questo per riscrivere gli URL al volo.
Non posso dire quanto sia buono questo plugin ma sembra che possa fare quello che stai cercando, caricare i tuoi allegati su un altro server (remoto).

Per modificare il percorso dei file multimediali, puoi cambiare il percorso tramite hook o direttamente nel database. Tuttavia, un metodo solido con la tecnica WordPress è un semplice plugin che attiva l'hook e modifica il percorso dei file multimediali.
Le voci si trovano nella tabella _options
, nelle voci upload_path
e upload_url_path
. Puoi impostare nel database un nuovo percorso oppure utilizzare il seguente snippet di codice per modificarli con l'aiuto degli hook.
add_filter( 'pre_option_upload_path', function( $upload_path ) {
return '/percorso/verso/static';
});
add_filter( 'pre_option_upload_url_path', function( $upload_url_path ) {
return 'http://static.esempio.org';
});
Il contenuto esistente dovrebbe essere cercato e sostituito in modo che tutti i file multimediali esistenti abbiano il percorso corretto all'interno del contenuto di ogni articolo/pagina nel database. Troverai tutto il contenuto, inclusi URL/Percorsi dei file multimediali, nella tabella _posts
.

Prova prima questo in un sito demo.
Lascia vuoto il upload_path
.
Cambia upload_url_path
con il tuo sottodominio.
In phpmyadmin usa il codice qui sotto per aggiornare le immagini già caricate allegate nei post. Sostituisci wp_posts con il prefisso del tuo database e i tuoi nomi di dominio
UPDATE wp_posts SET post_content = replace(post_content, 'https://mydemodomain.gr/wp-content/uploads/', 'https://images.mydemodomain.gr/uploads/');
Infine, in htaccess
RedirectMatch 301 ^/wp-content/uploads/(.*)$ https://images.mydemodomain.gr/$1
