web-dev-qa-db-ja.com

サブドメインでサブディレクトリマルチサイトインストールを実行する方法

私はバックエンドサーバーとしてNginxを実行しているVPSにいます。

サブディレクトリのマルチサイトWordPressインストールをセットアップしたいのですが、すべてのサブサイトを1つのサブドメインの下に置く必要があります。例えば:

私のメインサイト:

domain.com

サブサイト:

clients.domain.com/site1
clients.domain.com/site2
clients.domain.com/site3

clients.domain.comの下にWordPressの別のコピーをインストールしてMultisiteホームとして使用することができますが、domain.comは既にWordPressを実行しているので、管理とディスク容量の点で非効率的です。とにかくそのサブドメインのルート。

また、clients.domain.comへのすべての要求をdomain.comにリダイレクトできることにも気付いていますが、サブサイトまたはそれらの関連ファイルにdomain.com/site1を介してアクセスできるようにしたくないのです。サブサイトは、その親サイトをdomain.comとして認識する必要があります。

これを実行するための最良の方法は何ですか?

1
George Reith

これは解決されました、私がこれを書いている時点で私はWordpress 3.8を使っていることに注意してください。

プラグイン WPマルチネットワーク がこの機能を提供します。基本的にはネストしたマルチサイトネットワークを作成することができます。私のプライマリネットワークはdomain.comにあり、clients.domain.comClientsという別のネットワークを作成しました。

domain.comは私のメインサイトを指していますが、Clientsネットワークから作成したサブサイトはすべてclients.domain.com/sitename/という形式のURLを取ります。すべてのネットワークが同じデータベースを共有しています。

私はNginx( http://codex.wordpress.org/Nginx )に標準のwordpressサブディレクトリマルチサイト設定を使い、プラグイン Nginxヘルパー 私のmap{}ルールを生成します。

私はこれがこの問題を抱えている他の誰にでも役立つことを願っています。単一のデータベースと管理パネルを共有する、異なるサブドメイン(または異なるドメイン)に複数のマルチサイトネットワークを作成できるようになりました。

2
George Reith

方法を変更するためにsunrise.phpと呼ばれるドロップインを使用することができます、WordPressはあなたのネットワークのブログで要求をマッピングします。私は この答え で可能な解決策を説明しました。重要なのは、リクエストclients.domain.com/site1/some/post/をドメインclients.domain.comとパス/site1に解析し、それをwp_blogsテーブルのdomain列とpath列と比較することです。このように、サブドメインとパスをブログの識別子として処理する方法はあなた次第です。このデータを使って、$current_blog$current_siteのようなグローバル変数を設定する必要があります。

サブドメインインストールを使用するときは、必ず管理GUIを変更する必要はありません。その後ドメインclients.domain.comでブログを作成し、ブログの編集画面に行き、パスを変更してください。あまり快適ではありませんが、うまくいきます。

ブログのルートパスとしてさまざまなパスレベルを使用しているときにパスの競合が発生したのは、当然のことです。 sunrise.phpは非常に早く呼ばれるので、ブログのパスはパーマリンクのパスを勝ち抜きます。

0
David

これは非常に簡単な解決策です。

  1. clients.domain.comのWPマルチサイトサブディレクトリをインストールして設定します。
  2. インストール ドメインマッピングプラグイン
  3. すべてのサブサイトを作成する
  4. サブサイトの1つをdomain.comにドメインマップします。
0
user42826