Modifica della posizione dei media WordPress e del percorso di upload su un sottodominio non funziona

16 set 2019, 20:06:01
Visualizzazioni: 2.97K
Voti: 0

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 in
  • cdn.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.

7
Commenti

La costante UPLOADS è relativa ad ABSPATH, che è il percorso assoluto alla directory di WordPress. https://wordpress.org/support/article/editing-wp-config-php/#moving-uploads-folder Hai pensato di creare un symlink che colleghi i due?

ChristopherJones ChristopherJones
16 set 2019 20:58:58

Ciao, non sono molto sicuro su come farlo, la mia conoscenza in questo ambito è limitata. Tuttavia il suggerimento che ho usato è stato assicurarmi che la riga define('UPLOADS', 'https:// cdn.mysite.com/media'); sia aggiunta prima della riga require_once( ABSPATH . 'wp-settings.php' );

tammix tammix
17 set 2019 04:57:14

@JosuaMarcelC, ricorda che la UPLOADS costante è sempre relativa a ABSPATH. Tuttavia, utilizzare un valore come images.josuamarcelc.com non dovrebbe causare il messaggio "ho ottenuto questo per tutte le immagini "josuamarcelc.com/https://images.josua..." - quindi, sei sicuro di non aver effettivamente aggiunto "https://" quando hai definito UPLOADS? Stai usando WordPress v6.0 - se no, quale versione stai usando? Hai provato a disattivare tutti i plugin e/o passare a un tema predefinito come 2021? Il problema persisteva?

Sally CJ Sally CJ
15 giu 2022 05:25:23

Potresti anche provare a svuotare le cache. E @tammix, qual è la soluzione che hai finito per utilizzare in quel momento?

Sally CJ Sally CJ
15 giu 2022 05:32:49

@SallyCJ ancora non riesco a rimuovere l'ABSPATH dopo aver svuotato la cache

Josua M C Josua M C
17 giu 2022 14:59:19

@JosuaMarcelC avresti dovuto pubblicare la tua domanda in modo da poter aggiungere maggiori dettagli come il codice che hai usato e più contesto, ad esempio se il sottodominio risiede in ABSPATH, cioè se images.josuamarcelc.com è una sottodirectory nella root del documento per il dominio principale. Inoltre non hai risposto alle mie altre domande, ad esempio qual è la tua versione di WordPress e se la disattivazione dei plugin ha aiutato.

Sally CJ Sally CJ
17 giu 2022 17:56:24

@SallyCJ scusa, errore mio, la mia versione di WP è Versione attuale: 6.0, ho inserito define('UPLOADS', 'https://images.josuamarcelc.com'); nel mio wp-config.php prima di require_once ABSPATH, ma non funziona

Josua M C Josua M C
19 giu 2022 09:18:46
Mostra i restanti 2 commenti
Tutte le risposte alla domanda 3
1

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

19 giu 2022 07:35:12
Commenti

Vorrei metterlo sullo stesso server, ma solo con un URL diverso utilizzando un sottodominio

Josua M C Josua M C
19 giu 2022 09:51:40
0

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.

21 giu 2022 13:56:34
0

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
6 set 2022 12:07:57