Gostaria de usar blog.example.com como base para minhas postagens no blog, por exemplo http://blog.example.com/2013/08/29/sample-post/ e www.example.com para minhas páginas, por exemplo www.example.com/about-me/
Existe uma maneira fácil de fazer isso? Eu tentei criar uma rede, mas isso me deu duas instalações do WordPress, tanto com posts e páginas quanto com seus próprios painéis de administração. Eu só quero ir para um subdomínio, páginas para o outro.
Eu posso ter uma solução para você.
Primeiros passos:
Depois de terminar com o primeiros passos talvez você tenha que esperar pelo menos 15 minutos para ter certeza de que todas as suas alterações foram propagadas.
Se você quer que suas postagens únicas sejam acessadas via blog.mydomain.com/xxxx/xx/xx/my-post você terminou. Mas, esteja avisado que qualquer página do seu site será acessada via blog.mydomain.com/some-page. Por exemplo, o usuário poderá acessar os dois mydomain.com/my-contact-page e blog.mydomain.com/my-contact-page.
Além disso, a mudança para o domínio blog.mydomain.com não está sendo forçado . Se você quiser que seja forçado você precisa editar seu arquivo .htaccess e inserir antes da tag wordpress o seguinte:
# BEGIN custom redirect
# You might want to change 'blog' to your current blog page slug or to sth else you want!
<IfModule mod_rewrite.c>
# Here we are making sure when the user accesses blog.mydomain.com he will see the blog page content.
RewriteCond %{HTTP_Host} ^blog\.
RewriteCond %{REQUEST_URI} ^\/$
RewriteRule ^.*$ index.php?pagename=blog [L]
# Here we are redirecting mydomain.com/2016/12/16/my-post to blog.mydomain.com/2016/12/16/my-post
RewriteCond %{HTTP_Host} !^blog\.
RewriteRule ^([0-9]{4})\/([0-9]{1,2})\/([0-9]{1,2})\/(.+)\/?$ http://blog.mydomain.com/$1/$2/$3/$4 [L,NC]
# Here we are redirecting mydomain.com/blog to blog.mydomain.com
RewriteRule ^blog\/?$ http://blog.mydomain.com [L,NC]
</IfModule>
# END custom redirect
Preste atenção nos comentários ao longo do snippet de código para realizar suas próprias alterações, caso seja necessário.
Se você quiser evitar que outras páginas sejam vistas através do subdomínio, você pode adicionar este snippet de código em seu arquivo functions.php:
function Push_redirect() {
$Host = $_SERVER['HTTP_Host'];
// If we are not seeing the subdomain we have no reasons to continue.
if ( !preg_match( "/^blog\./", $Host ) )
return;
// If we are seeing blog homepage or single post we have no reasons to continue.
if ( is_home() || is_singular( 'post' ) )
return;
$site_url = site_url();
$uri = $_SERVER['REQUEST_URI'];
$redirect_to = $site_url . $uri;
wp_redirect( $redirect_to, 302 );
exit;
}
add_action( 'template_redirect', 'Push_redirect', 10 );
Espero que seja isso que você estava procurando.
Acredito que a única maneira é usar mod_rewrite
em seu .htaccess
para transformar um URL fixo; diga http://www.example.com/blog em http://blog.example.com
Prefixo todos os seus artigos com "blog".
Coloque isso em .htaccess
dentro do seu diretório /blog
:
RewriteEngine on
RewriteCond ${HTTP_Host} ^www\.domain\.com$
RewriteRule ^(.*) http://blog.domain.com/$1 [R,L]