web-dev-qa-db-ja.com

異なるドメイン名でWordpress Multisiteを使用する方法

WordPressのマルチサイトで作業したいのですが、自分の名前を使用できるようにしたいです。たとえば、私のメインサイトはexample.comです。マルチサイトネットワークに新しいサイトを追加したい場合は、newsite.example.comと呼びます。私はそれがexampleなしでnewsite.comであることを望みます。これを達成する方法はありますか?

プラグインを使ったドメインマッピングについて聞いたことがありますが、これがこの質問に関連しているかどうかはわかりません。それが関連しているならば、私はこれが正確に何であるかについて知りたいです。

16
Kevin.a

このトピックについては常に少し混乱があるようです。たぶんWordPressはこのプロセスでそれをユーザーに導くよりよい仕事をすることができました。ただし、Multi-siteはTLDに使用することを目的としていないと思います。

だからまず第一に、私は WordPressをインストールするセットアップマルチサイト そしてサブドメインネットワーク設定としてそれを設定する。

これがあなたのWordPressインストールのベースディレクトリにあるあなたのwp-config.phpファイルの設定例です:

/* Multisite */
define( 'WP_ALLOW_MULTISITE', true );
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
define( 'DOMAIN_CURRENT_SITE', 'www.primary-domain.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

それでは、WordPressインストールのベースディレクトリにある、サブドメイン設定としての.htaccessファイルの基本設定は以下のようになります。

# BoF WordPress

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

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

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

# EoF WordPress

TLDを正しく動作させるために、wp-config.phpファイルにいくつか追加の設定をしなければなりません。

define( 'COOKIE_DOMAIN', '' );
define( 'ADMIN_COOKIE_PATH', '/' );
define( 'COOKIEPATH', '/' );
define( 'SITECOOKIEPATH', '/' );

これでWordPress固有の設定は完了です。

個人的には、ネットワーク内のプライマリドメインに1つのApache仮想ホストを設定してから、その仮想ホストにエイリアスドメインを設定します。各エイリアスドメインは、ネットワーク内の追加サイトの1つです。

ただし、設定を微調整してしまうと、各ドメインのDNSを同じWebサーバーに解決し、各ドメインをプライマリドメインと同じディレクトリを指すように設定する必要があります。ネットワーク内の各ドメインは、DNSレコードを持つ同じWebサーバーを指し、WordPressが使用するファイルに対して同じディレクトリパスを共有する必要があります。

上記の説明に従って、すべての設定とセットアップが完了したら、 WordPressの管理領域にログインし、ネットワーク管理領域に移動して新しいサイトをネットワークに追加します。

あなたがサイトを追加しようとするとき、それはあなたがそれがあなたのプライマリドメインの下のサブドメインであるかのようにウェブサイトを追加することを強制します。それを転がすだけです。一時的なものを入力してください。

サイトが追加されたら、ネットワーク内のサイトのリストの下にそのサイトを見つけます。その特定のサイトで[編集]をクリックします。今、あなたは完全にそのWebサイトのドメイン名を100%変更することができます。このTLDサイトの実際のドメイン名を入力します。

そのようにするのは少し面倒なことだと思いますが、うまくいくのでプラグインを使用する必要はありません。

20
Michael Ecklund

いくつかのリリース前からプラグインがなくても可能です(具体的なリリースは思い出せませんが、その機能はしばらく前からありました)。ただし、最初から始める場合は、WordPressマルチサイトをサブドメインモードでインストールする必要があります。

あなたは、メインURL(おそらくkevin123.com)をネットワークのメインURL(マルチサイト)として宣言しなければなりません。これはwp-config.php定数のDOMAIN_CURRENT_SITEに格納され、このドメインをホームURLとして使用するサイト(以前は"blog"と呼ばれていました)はIDをBLOG_ID_CURRENT_SITEに格納する必要があります。しかし、これは標準的なインストールプロセスの間のほとんどデフォルトのものです。

WordPressでは、サブドメイン作成時 _のみを指定できます。しかし、サイトが作成されたら、それを編集してサイトのURLに任意の値を追加することができます。私はいくつかのスクリーンショットでこの答えで少し前にそれを説明しました: サブドメインマルチサイトでネストされたサブドメインは可能ですか?

COOKIE_DOMANで定数wp-config.phpを空の値に設定する必要があるかもしれません。

define( 'COOKIE_DOMAIN', '' );
4
David