Em primeiro lugar, li várias postagens sobre esse processo. No entanto, por várias razões, o processo continua difícil de implementar ou solucionar problemas por falta de exemplos abstratos, ou talvez abstratos demais. E há algumas postagens "não posso fazer", quase sempre seguidas de "com 3.5, agora você pode" advertências, para saber se alguém pode permanecer ambíguo, embora sem dúvida não seja trivial.
Resumo:
Como mover um wordpress multisite (WPMS) de root.com para root / blogs?
Neste exemplo, estamos movendo um WPMS de "root.com" para "root.com/blogs"
Entendo que preciso atualizar os caminhos no banco de dados e no wp-config.php adequadamente. Parece que também posso precisar atualizar .htaccess? Também estou ciente do problema de serialização com atualizações de consulta de pesquisa / substituição e mysql.
Eu tenho um WPMS que atualizei para 3.5. Encontrei as tabelas a seguir com informações de domínio e caminho
Configuração de trabalho existente antes de passar para o subdiretório
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. O blog_id corresponde às tabelas de opções wp _ # _ que contêm:
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. No meu wp-config.php , tenho as seguintes linhas específicas do 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. Por fim, no meu .htaccess , tenho:
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]
Atualizações necessárias para mover o site
Parece-me que, para mover meu site para os / blogs, eu deveria:
1. Atualize wp_blogs para
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. Atualize wp_site para
update wp_site set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/');
select * from wp_site;
+----+-------------+------------+
| id | domain | path |
+----+-------------+------------+
| 1 | root.com | /blogs/ |
+----+-------------+------------+
3. wp _ # _ opções
+-------------+--------------------------------+
| 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 );
nota: não sei como esta etapa é atualizada adequadamente
5. htaccess
Encontrei vagas instruções de "atualização .htaccess adequadamente", mas não específicas. Atualizar RewriteBase? Quais linhas em .htaccess atualizo quando movo root.com para root.com/blogs?
Faltam no processo acima os caminhos encontrados nas postagens. Meus defensores devem usar a ferramenta de pesquisa e substituição para isso, depois de fazer essas atualizações mais fundamentais; ou eu estou errado?
A atualização da bungeshea sugere que, sim, aponte o RewriteBase para o subdiretório "blogs", ou seja,
RewriteBase /Blogs
Por fim, se você não conhece o http://interconnectit.com/products/search-and-replace-for-wordpress-databases/, deve. É excelente.
update wp_blogs set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/');
deveriam ser #update wp_blogs set path=concat('/blogs',path);
Respostas:
Eu sei que é velho, mas eu consertei! instalei o WP MU em uma subpasta.
htaccess
:wp-config.php
:e no seu banco de dados, modifique isto:
fonte
Parece-me como se tivesse resolvido o seu próprio problema - basta seguir os seus passos 1-4, e para a etapa 5 atualização do
RewriteBase
no.htaccess
. Para atualizar os caminhos nas postagens, gosto de usar a ferramenta de busca e substituição esterilizada da Interconnect IT .fonte
RewriteBase /blog
wp-admin
Ok, aqui está o que eu fiz e isso funcionou. Nenhuma subpasta. O site foi configurado anteriormente para subdomínio.
BACKUP PRIMEIRO !!!
wp-config.php (substitua este bloco pelo bloco do seu arquivo)
.htaccess
agora no banco de dados SQL:
1) para cada wp_ (site #) _ tablesuffix, vá para a tabela de opções e altere siteurl e home para
http://www.sitename.com/blogname
2) wp_blogs para cada blog_id alteram o domínio de
blogname.domain.com
paradomain.com
e o caminho para/blogname/
3) não há necessidade de alterar wp_options siteurl & home ou quaisquer células em wp_site ou wp_sitemeta se a instalação estiver no mesmo local.
Depois de concluir, vá para (no painel de administração do superusuário)> permalinks e clique em Salvar.
Voila!
fonte
Esta é a minha primeira resposta, por isso seja atencioso! :)
Eu não tinha um blog que já estivesse em subdomínios para ser convertido. Mas eu tive que lutar porque era um blog antigo e eles não me deixaram criar um blog de subdiretório e eu temia que o WP fizesse alterações no meu banco de dados quando eles me deram os códigos para inserir.
Isso foi o que funcionou para mim em abril de 2018, pessoal ... usei o wp-config do hot_barbara e usei o .htaccess também deles.
Portanto, por favor, não vá para uma subpasta - eu não!
NO ENTANTO, no SQL DB, foi o que aconteceu no meu caso - já era tudo assim, então não fiz alterações:
domínio wp_blogs: caminho xyzabc.com: /
wp_sitemeta siteurl: h ** ps: //xyzabc.com/
Você - como eu entendo - estaria usando uma barra final se a tivesse nas suas configurações.
fonte
Reescreva o seu
wp-config.php
com este códigoao invés de
define('SUBDOMAIN_INSTALL', true);
então vá para:
então:
Adicione o seguinte ao seu arquivo .htaccess em /var/www/vhosts/website.com/, substituindo outras regras do WordPress:
É isso aí.
fonte