Schimbarea locației media WordPress și a căii de încărcare pe un subdomeniu nu funcționează

16 sept. 2019, 20:06:01
Vizualizări: 2.97K
Voturi: 0

Î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 în
  • cdn.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.

7
Comentarii

Constanta UPLOADS este relativă la ABSPATH, care reprezintă calea absolută către directorul WordPress. https://wordpress.org/support/article/editing-wp-config-php/#moving-uploads-folder Te-ai gândit să creezi o legătură simbolică (symlink) care să le conecteze?

ChristopherJones ChristopherJones
16 sept. 2019 20:58:58

Bună, nu sunt sigur cum să fac asta, cunoștințele mele în acest domeniu sunt limitate. Totuși, sfatul pe care l-am folosit a fost să mă asigur că linia define('UPLOADS', 'https:// cdn.mysite.com/media'); este adăugată înaintea liniei require_once( ABSPATH . 'wp-settings.php' );

tammix tammix
17 sept. 2019 04:57:14

@JosuaMarcelC, amintește-ți că UPLOADS constanta este întotdeauna relativă la ABSPATH. Totuși, folosirea unei valori precum images.josuamarcelc.com nu ar trebui să provoace mesajul "am primit asta pentru toate imaginile "josuamarcelc.com/https://images.josua..." - deci, ești sigur că nu ai adăugat "https://" când ai definit UPLOADS? Folosești WordPress v6.0 - dacă nu, ce versiune folosești? Ai încercat să dezactivezi toate plugin-urile și/sau să treci la o temă implicită precum 2021? Problema a persistat?

Sally CJ Sally CJ
15 iun. 2022 05:25:23

Ai putea încerca și să șterghi cache-ul. Și @tammix, care a fost soluția pe care ai folosit-o atunci?

Sally CJ Sally CJ
15 iun. 2022 05:32:49

@SallyCj încă nu pot elimina ABSPATH după ștergerea cache-ului

Josua M C Josua M C
17 iun. 2022 14:59:19

@JosuaMarcelC ar fi trebuit să postezi propria întrebare pentru a putea adăuga mai multe detalii precum codul pe care l-ai folosit și mai mult context, de ex. dacă subdomeniul se află în ABSPATH, adică dacă images.josuamarcelc.com este un subdirector în root-ul document pentru domeniul principal. De asemenea, nu ai răspuns la celelalte întrebări ale mele, cum ar fi versiunea ta de WordPress și dacă dezactivarea plugin-urilor a ajutat.

Sally CJ Sally CJ
17 iun. 2022 17:56:24

@SallyCJ scuze, greșeala mea, versiunea mea WP este Versiune curentă: 6.0, am pus define('UPLOADS', 'https://images.josuamarcelc.com'); în wp-config.php înainte de require_once ABSPATH, dar nu funcționează

Josua M C Josua M C
19 iun. 2022 09:18:46
Arată celelalte 2 comentarii
Toate răspunsurile la întrebare 3
1

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

19 iun. 2022 07:35:12
Comentarii

doresc să pun pe același server, dar doar URL-ul să fie diferit, cu un subdomeniu

Josua M C Josua M C
19 iun. 2022 09:51:40
0

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.

21 iun. 2022 13:56:34
0

Î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
6 sept. 2022 12:07:57