Schimbarea locației media WordPress și a căii de încărcare pe un subdomeniu nu funcționează
Încerc să schimb locația tuturor fișierelor media WordPress pe un subdomeniu situat deasupra rădăcinii site-ului, adică deasupra public_html. Am actualizat setările din wp-config.php
astfel:
define('UPLOADS', 'https://cdn.mysite.com/media');
Și am actualizat URL-urile imaginilor pentru postările existente folosind instrumentul de căutare-înlocuire din PHPmyAdmin, de exemplu, am schimbat toate:
mysite.com/wp-content/uploads/
URL-uri încdn.mysite.com/media/
De asemenea, am actualizat tabelul wp-options, câmpurile pentru calea de încărcare și calea URL de încărcare astfel:
- calea de încărcare
/myserverroot/user/cdn/media
- calea URL de încărcare
https://cdn.mysite.com/media/
Totuși, când reîmprospătez paginile web, toate fișierele media lipsesc, iar când verific codul HTML al tag-ului IMG, văd că URL-ul src este prefixat cu URL-ul de bază al site-ului astfel:
img src="https:// mysite.com/https://cdn.mysite.com/media/2019/9/image.jpg"
Aveți idei despre care ar putea fi cauza? Mulțumesc mult.

Acest lucru nu va funcționa așa cum vă așteptați. WordPress va încerca să încarce atașamentele (imagini, fișiere PDF, etc.) pe serverul dumneavoastră folosind constanta UPLOADS
, această cale este o cale locală pe server.
Dacă doriți să folosiți un CDN, puteți solicita un serviciu de CDN pentru a face acest lucru (pentru a gestiona fișierele și a le încărca la distanță pe serviciul lor) sau puteți utiliza un instrument precum acesta pentru a rescrie URL-urile din mers.
Nu pot spune cât de bun este acest plugin, dar se pare că ar putea face ceea ce căutați, adică să încarce atașamentele pe un alt server (la distanță).

Pentru a schimba calea către fișierul media, puteți modifica calea prin intermediul unui hook sau direct în baza de date. Cu toate acestea, o metodă solidă în WordPress este folosirea unui simplu plugin care să declanșeze hook-ul și să modifice calea fișierelor media.
Intrările se află în tabelul _options
, intrările upload_path
și upload_url_path
. Puteți seta în baza de date o nouă cale sau puteți folosi următorul fragment de cod pentru a le modifica cu ajutorul hook-urilor.
add_filter( 'pre_option_upload_path', function( $upload_path ) {
return '/calea/către/static';
});
add_filter( 'pre_option_upload_url_path', function( $upload_url_path ) {
return 'http://static.exemplu.org';
});
Conținutul existent trebuie căutat și înlocuit astfel încât toate fișierele media să aibă calea corectă în conținutul fiecărui post/pagină din baza de date. Veți găsi tot conținutul, inclusiv URL-urile/Căile către fișierele media, în tabelul _posts
.

Încearcă mai întâi pe un site demo.
Lasă câmpul upload_path
gol.
Modifică upload_url_path
cu subdomeniul tău.
În phpmyadmin folosește codul de mai jos pentru a actualiza imaginile deja încărcate atașate în articole. Schimbă wp_posts cu prefixul bazei tale de date și numele domeniului tău
UPDATE wp_posts SET post_content = replace(post_content, 'https://mydemodomain.gr/wp-content/uploads/', 'https://images.mydemodomain.gr/uploads/');
Și în final în fișierul htaccess
RedirectMatch 301 ^/wp-content/uploads/(.*)$ https://images.mydemodomain.gr/$1
