私はバックエンドサーバーとして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
として認識する必要があります。
これを実行するための最良の方法は何ですか?
これは解決されました、私がこれを書いている時点で私はWordpress 3.8を使っていることに注意してください。
プラグイン WPマルチネットワーク がこの機能を提供します。基本的にはネストしたマルチサイトネットワークを作成することができます。私のプライマリネットワークはdomain.com
にあり、clients.domain.com
にClients
という別のネットワークを作成しました。
domain.com
は私のメインサイトを指していますが、Clients
ネットワークから作成したサブサイトはすべてclients.domain.com/sitename/
という形式のURLを取ります。すべてのネットワークが同じデータベースを共有しています。
私はNginx( http://codex.wordpress.org/Nginx )に標準のwordpressサブディレクトリマルチサイト設定を使い、プラグイン Nginxヘルパー 私のmap{}
ルールを生成します。
私はこれがこの問題を抱えている他の誰にでも役立つことを願っています。単一のデータベースと管理パネルを共有する、異なるサブドメイン(または異なるドメイン)に複数のマルチサイトネットワークを作成できるようになりました。
方法を変更するために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
は非常に早く呼ばれるので、ブログのパスはパーマリンクのパスを勝ち抜きます。
これは非常に簡単な解決策です。