web-dev-qa-db-ja.com

あるサブドメインのブログ投稿、別のサブドメインのページ

私はblog.example.comを私のブログ投稿のベースとして使いたいのですが、私のページは http://blog.example.com/2013/08/29/sample-post/ とwww.example.com。 www.example.com/about-me/

これを行う簡単な方法はありますか?私はネットワークを作成しようとしましたが、それは私に2つのWordPressインストールを提供します。両方とも投稿とページと彼ら自身の管理ダッシュボードです。私はただ一つのサブドメインへの投稿、もう一方へのページを行きたいです。

5
Florian Heinle

私はあなたのために解決策があるかもしれません。

最初のステップ:

  1. ドメインのDNSマネージャ内で、CNAMEレコードを作成する必要があります。名前は ブログ そしてホスト名はあなたの ドメイン名。ブラウザがサブドメインを指す場所を知る必要があるので、これが必要です。 blog.mydomain.comに;
  2. 次に、サブドメインblog.mydomain.comのディレクトリの場所をApacheに伝えます(私はあなたがApacheを使っているとします)。ブラウザがあなたのサブドメインを見つけるためにどのサーバで知っているなら、ブラウザがそれを見るためにどのフォルダでそれを言う必要があるので、これは必要です。

あなたが終わったら 最初のステップ 変更がすべて反映されたことを確認するために、少なくとも15分待たなければならない場合があります。

単一の投稿に次の方法でアクセスしたい場合 blog.mydomain.com/xxxx/xx/xx/my-post これで終わりです。しかし、あなたのサイト内のどのページにもアクセスできることに注意してください。 blog.mydomain.com/some-page。たとえば、ユーザーは両方にアクセスできるようになります。 mydomain.com/my-contact-page そして blog.mydomain.com/my-contact-page

その他、ドメインへの移行 blog.mydomain.com は強制されていません。強制的にしたい場合、.htaccessファイルを編集してwordpressタグの前に次のように挿入する必要があります。

# 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
必要に応じて独自の変更を実行するために、コードスニペットに沿ったコメントに注意を払ってください。

サブドメインを通して他のページが見えないようにしたい場合は、このコードスニペットを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 );

私はこれがあなたが探していたものだと思います。

7
filipecsweb

唯一の方法はあなたのmod_rewrite.htaccessを使って固定のURLを変えることだと私は信じます。 http://www.example.com/blog と言って http://blog.example.com

  1. すべての記事の先頭に "blog"を付けます。

  2. .htaccessディレクトリ内の/blogに配置してください。

RewriteEngine on
RewriteCond ${HTTP_Host} ^www\.domain\.com$
RewriteRule ^(.*) http://blog.domain.com/$1 [R,L]
1
Pim