it-swarm-eu.dev

Pohyb WP Více míst do podadresáře

Za prvé, jsem čtenípočet pracovních míst v tomto procesu. Z různých důvodů je však stále obtížné tento proces implementovat nebo řešit problémy s nedostatkem i abstraktních příkladů, nebo možná příliš abstrakcí. A je tu několik "nemůže dělat" příspěvky, téměř vždy následuje "s 3.5, nyní můžete" upozorňuje, takže ať už může zůstat dvojznačný, i když bezpochyby non-triviální.

Souhrn:

Jak přesunout wordpress multisite (WPMS) z root.com na root/blogy?

V tomto příkladu přesouváme WPMS z "root.com" na "root.com/blogs"

Chápu, že musím správně aktualizovat cesty v databázi a wp-config.php. Zdá se, že také musím aktualizovat .htaccess? Také jsem si vědom serializačního problému s vyhledáváním/nahrazením a aktualizací dotazů mysql.

Mám WPMS, který jsem aktualizoval na 3.5. Našel jsem následující tabulky s informacemi o doméně a cestě

Stávající pracovní konfigurace před přesunutím do podadresáře

1. wp_blogs

select blog_id, domain, path from wp_blogs;
+---------+-------------+--------+
| blog_id | domain      | path   |
+---------+-------------+--------+
|       1 | root.com    | /      |
|       2 | root.com    | /matt/ |
+---------+-------------+--------+

2. wp_site

select * in wp_site;
+----+-------------+------+
| id | domain      | path |
+----+-------------+------+
|  1 | root.com    | /    |
+----+-------------+------+

3. Blog_id odpovídá tabulkám možností wp _ # _, které obsahují:

select option_name,option_value from wp_2_options 
where option_name = 'home' or option_name = 'siteurl';
+-------------+--------------------------+
| option_name | option_value             |
+-------------+--------------------------+
| home        | http://root.com/matt/    |
| siteurl     | http://root.com/matt/    |
+-------------+--------------------------+

4. V mém wp-config.php mám následující řádky specifické pro WPMS:

define('WP_ALLOW_MULTISITE', true);
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false);
$base = '/';
define( 'DOMAIN_CURRENT_SITE', 'root.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

5. Nakonec, v mém .htaccess , mám:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

Aktualizace potřebné k přesunutí webu

Zdá se mi, že za účelem přesunu svých stránek na/blogy bych:

1. Aktualizujte wp_blogs na

mysql> update wp_blogs set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/');
select blog_id, domain, path from wp_blogs where blog_id < 3;
+---------+-------------+--------------+
| blog_id | domain      | path         |
+---------+-------------+--------------+
|       1 | root.com    | /blogs/      |
|       2 | root.com    | /blogs/matt/ |
+---------+-------------+--------------+

2. Aktualizujte wp_site na

update wp_site set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/');
select * from  wp_site;
+----+-------------+------------+
| id | domain      | path       |
+----+-------------+------------+
|  1 | root.com    | /blogs/    |
+----+-------------+------------+

3. Možnosti wp _ # _

+-------------+--------------------------------+
| option_name | option_value                   |
+-------------+--------------------------------+
| home        | http://root.com/blogs/matt/    |
| siteurl     | http://root.com/blogs/matt/    |
+-------------+--------------------------------+

4. wp_config.php

define('WP_ALLOW_MULTISITE', true);
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false);
$base = '/blogs/';
define( 'DOMAIN_CURRENT_SITE', 'root.com' );
define( 'PATH_CURRENT_SITE', '/blogs/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

note: Nejsem si jistý, jak je tento krok vhodně aktualizován

5. .htaccess

Našel jsem vágní instrukce „aktualizovat .htaccess“, ale ne specifika. Aktualizovat RewriteBase? Jaké řádky v .htaccess aktualizuji, když přesouvám root.com na root.com/blogs?

Chybějící z výše uvedeného procesu budou cesty založené v příspěvcích. Moji druthers použijí nástroj pro vyhledávání a nahrazování toho, co jsem provedl tyto zásadnější aktualizace; nebo se mýlím?

Updatebungeshea navrhuje, že ano, přejdu RewriteBase do podadresáře "blogy", tzn.

RewriteBase /Blogs

Nakonec, pokud nevíte o http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ měli byste. Je to vynikající.

19
Screenack

Vím, že je to starý, ale opravil jsem to! i nainstalovali WP MU do podsložky. htaccess:

RewriteEngine On
RewriteBase /YOUR_SUBFOLDER
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule ^(.*\.php)$ YOUR_SUBFOLDER/$1 [L]
RewriteRule . index.php [L]

wp-config.php:

define( 'WP_ALLOW_MULTISITE', true ); 
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'localhost'); // or your Host
define('PATH_CURRENT_SITE', '');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

a v databázi upravte toto:

wp_site
domain: localhost (OR your domain but no subdirectory!)
path: /

wp_blogs
domain: localhost (OR your domain but no subdirectory in each blog_id!)
path: /

wp_sitemeta
siteurl: http://localhost/YOUR_SUBFOLDER (replace localhost with your Host)
6
nicmare

Vypadá to, jako kdybyste vyřešili svůj vlastní problém - postupujte podle kroků 1-4 a pro krok 5 aktualizujte RewriteBase v .htaccess. Pro aktualizaci cest v příspěvcích se mi líbí použití nástroje Interconnect IT sterilizovaného vyhledávání a nahrazení .

2
shea

Ok, co jsem udělal, a to fungovalo. Žádná podsložka. Místo bylo dříve nakonfigurováno na subdoménu.

ZÁLOHOVÁNÍ PRVNÍ !!!

wp-config.php (nahradit tento blok blokem ve vašem souboru)

define('WP_ALLOW_MULTISITE', true ); 
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'no-www-in-sitename.com'); // your Host
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

.htaccess

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

nyní v SQL DB:

1) pro každý wp_ (site #) _ tablesuffix přejděte do tabulky možností a změňte siteurl a home na http://www.sitename.com/blogname

2) wp_blogs pro každý blog_id mění doménu z blogname.domain.com na domain.com a cestu na /blogname/

3) není třeba měnit wp_options siteurl & home nebo jakékoliv buňky v wp_site nebo wp_sitemeta, pokud je instalace na stejném místě.

Poté, co jste hotovi, se ujistěte, že jdete na (v panelu superuživatele admin) nastavení> permalinks a kliknete na tlačítko Uložit.

Voila!

1
hot_barbara

To je moje první odpověď, prosím, buďte ohleduplní! :)

I DID NENÍ k dispozici blog, který již byl v subdoménách konvertován. Ale musel jsem bojovat, protože to byl starý blog a oni mi nedovolili, abych vytvořil podadresářový blog a obával jsem se, že WP udělalo změny v mém DB v době, kdy mi dali kódy, které jsem vložil.

To je to, co pro mě pracovalo v dubnu 2018 kluci ... Použil jsem wp-config z hot_barbara a také jsem z nich použil .htaccess.

Proto prosím, dont jít na podsložku - I didnt!

Ale v SQL DB se to stalo v mém případě - to už bylo takhle, takže jsem neučinil žádné změny:

  1. doména wp_site: cesta xyzabc.com: /

doména wp_blogs: cesta xyzabc.com: /

wp_sitemeta siteurl: h ** ps: //xyzabc.com/

Pokud byste to měli v nastavení, používali byste, jak jsem pochopil, lomítko.

0
Ebe

Přepište wp-config.php tímto kódem

define('SUBDOMAIN_INSTALL', false);

místo define('SUBDOMAIN_INSTALL', true);

pak goto:

http://www.website.com/wp-admin/network/setup.php

pak:

Přidejte následující soubor .htaccess v souboru /var/www/vhosts/website.com/, který nahradí ostatní pravidla aplikace WordPress:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

A je to.

Vytvořit nový web s podadresářem

0
Amran