We have a WordPress site, which contains posts and pages. Now we moved posts into sub domain but we kept pages into root domain. Only Posts has .html
extension and there is no difference in the URL for Posts & Pages.
Sample Post: www.mydomain/sample-posts.html
need to redirect with blog.mydomain/sample-posts.html
.
Sample Page: www.mydomain/sample-pages
How to redirect only posts in to sub domain?
We have a WordPress site, which contains posts and pages. Now we moved posts into sub domain but we kept pages into root domain. Only Posts has .html
extension and there is no difference in the URL for Posts & Pages.
Sample Post: www.mydomain.com/sample-posts.html
need to redirect with blog.mydomain.com/sample-posts.html
.
Sample Page: www.mydomain.com/sample-pages
How to redirect only posts in to sub domain?
I would do this per server configuration. Here is an example for the .htaccess
:
RewriteCond %{HTTP_HOST} !^blog\.example\.com$
RewriteRule (.*)\.html$ http://blog.example.com/$1.html [L,R=301]
You could do this in a WordPress plugin too. Untested suggestion:
add_action( 'template_redirect', 'wpse_77279_redirect' );
function wpse_77279_redirect()
{
if ( is_single()
and 'blog.example.com' !== $_SERVER['HTTP_HOST']
and 'post' === get_post_type()
)
{
wp_redirect( 'blog.example.com' . $_SERVER['REQUEST_URI'] );
exit;
}
}