Multisite în subfolder - Cum să faci noile site-uri să fie în același nivel de subfoldere ca site-ul principal

20 oct. 2013, 20:48:08
Vizualizări: 18.2K
Voturi: 5

Am următoarea situație. Am instalat un WP Multisite într-un subfolder:

my-domain.com/subfolder/wp-multisite-root

În mod normal, următoarele site-uri adăugate ar fi create astfel:

my-domain.com/subfolder/wp-multisite-root
my-domain.com/subfolder/wp-multisite-root/site1
my-domain.com/subfolder/wp-multisite-root/site2
my-domain.com/subfolder/wp-multisite-root/site3

Există vreo metodă prin care să le pot crea astfel?

my-domain.com/subfolder/wp-multisite-root
my-domain.com/subfolder/site1
my-domain.com/subfolder/site2
my-domain.com/subfolder/site3

Mai este o particularitate. my-domain.com/subfolder/ conține o altă aplicație care nu este WordPress.

1
Comentarii

Ce înseamnă non wp application? Ce conflicte de .htaccess / slug aveți?

brasofilo brasofilo
20 oct. 2013 23:26:10
Toate răspunsurile la întrebare 4
1

După acești ani, sper că acest răspuns va rezolva încă întrebarea ta...

Cred că am reușit să rezolv situația pe care o dorești. Deși nu am instalarea WordPress în '/subfolder/', dar am o instalare 'în subdirector' pe limbă, și pe același nivel:

 my-domain.com/nl/ -> aceasta este instalarea primară, site id = 1 
 my-domain.com/en/ -> acesta este primul site creat prin multistie, site id = 2
 my-domain.com/de/ -> acesta este al doilea site creat prin multistie, site id = 3

Necesită puțină 'hacking' în baza de date, dar este foarte ușor.

Pasul 1: Asigură-te că instalarea ta 'root' pentru multisite funcționează conform așteptărilor în subdirectorul său. În cazul meu, am următoarele în 'wp-config.php':

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false); // permite instalare sub-director (true pentru instalare subdomeniu)
define('DOMAIN_CURRENT_SITE', 'my-domain.com/subfolder');
define('PATH_CURRENT_SITE', '/wp-multisite-root/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

(de fapt, în realitate nu am '/subfolder' :))

Pasul 2: Acum creează primul tău site nou prin multisite într-un subfolder. Când introduci numele folderului 'site2', WordPress îți va spune că va fi creat ca: my-domain.com/subfolder/wp-multisite-root/site2 Asta este corect, vom elimina manual folderul 'wp-multisite-root'

Pasul 3: Deschide phpMyAdmin/directAdmin În tabela wp_blogs editează intrarea noului tău site creat. Va trebui să modificăm path-ul acestuia. Se poate face cu următoarea interogare:

UPDATE `wp_blogs` SET `path` = '/site2/' WHERE `wp_blogs`.`path` = '/wp-multisite-root/site2/';

Schimbă numele domeniului și al site-ului în consecință. De asemenea, caută id-ul site-ului menționat acolo. Dacă este primul site suplimentar creat, va avea ID 2 ca în introducerea mea.

Pasul 4: Caută în tabela wp_<SITEID>_options. În cazul nostru cu Site ID 2, va fi wp_2_options. Acolo va trebui să schimbăm option_value unde option_name este 'siteurl' și 'home'. Se poate face rulând următoarele interogări:

UPDATE `wp_2_options` SET `option_value` = 'my-domain.com/subfolder/site2/' WHERE `option_name` = 'siteurl';
UPDATE `wp_2_options` SET `option_value` = 'my-domain.com/subfolder/site2/' WHERE `option_name` = 'home';

Din nou, schimbă domeniul și numele folderului în consecință. Vei observa că eliminăm 'wp-multisite-root' din url-ul acolo, astfel site2 va fi pe același nivel ca `wp-multisite-root'.

Pasul 5: Reîmprospătează wp-admin și site-urile tale vor fi listate așa cum doreai.

27 iul. 2016 10:31:37
Comentarii

Instalarea unei rețele multisite într-un subfolder nu îmi permite să adaug un site cu un domeniu nou fără ca articolele să apară ca 404. Domeniul principal funcționează corect, cel nou funcționează bine cu excepția articolelor, care apar ca 404. Am încercat să modific permanentlink-ul, dar nu funcționează, singurul lucru care merge este să setez permanentlink-ul la index.php/%postname%/ - aici funcționează, dar acest lucru face ca index.php să apară în toate URL-urile, ceea ce arată urât din punct de vedere estetic. Cred că trebuie să repar ceva în .htaccess.

LΞИIИ LΞИIИ
17 sept. 2024 03:59:14
0

Răspunsul lui Piemol este excelent și a funcționat pentru mine. Cu toate acestea, nu am putut să mă autentific pe niciunul dintre site-urile mele, cu excepția site-ului principal. După ce am inspectat cookie-urile, am descoperit că WordPress crea un cookie doar pentru site-ul meu principal și nu pentru celelalte subdirectoare. Pentru a folosi exemplul OP, acesta crea un cookie pentru /subfolder/wp-multisite-root, pe care /subfolder/site1 nu îl putea utiliza.

Am cercetat nucleul WordPress pentru a vedea ce trebuie să repar și am ajuns să adaug acest cod în plugin-ul meu personalizat pentru a corecta căile folosite pentru cookie-uri:

define('COOKIEPATH', '/subfolder/');
define('SITECOOKIEPATH', '/subfolder/');

În cazul meu, structura site-ului meu este de fapt ca cea a lui Piemol, așa că am corectat căile cookie-urilor pentru a fi rădăcina:

define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');
23 aug. 2017 17:23:07
4

Cea mai simplă soluție este să faci my-domain/subfolder/ directorul de instalare WordPress și URL-ul de bază, apoi să activezi multisite configurat să folosească subdirectoare.

20 oct. 2013 20:50:05
Comentarii

Scuze, am uitat să menționez că my-domain/subfolder/ conține o aplicație.

HoGo HoGo
20 oct. 2013 21:05:45

Poate ar fi bine să mutăm aplicația?

Chip Bennett Chip Bennett
20 oct. 2013 21:10:50

@ChipBennett asta ar suprascrie vreuna dintre configurațiile curente ale site-ului?

Rahman Sharif Rahman Sharif
15 iun. 2014 15:15:53

Cum să fac directorul de instalare într-un subfolder?

John Jang John Jang
1 ian. 2019 14:12:03
0
-1

Am încercat să fac ceva similar, iar din tot ce am descoperit până acum cred că răspunsul este nu, acest lucru nu este posibil în prezent :(

8 iul. 2014 18:10:03