質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

4回答

7939閲覧

Wordpressマルチサイトで作成した子サイトのURLを変更したい

paranoaman

総合スコア27

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2016/08/18 02:23

編集2016/08/18 02:37

立て続けに失礼します。

Wordpressでサイト構築した際たとえば、
http://example.com/wp/
この中で親サイトを構築したとします。
その後マルチサイト化させ複数の子サイトを作成します。

▽親
http://example.com/wp/
▽子
http://example.com/wp/test1
http://example.com/wp/test2
http://example.com/wp/test3

通常通り作成すれば上記の形になるかと思います。
実現したい形は。。

▽子
http://example.com/test1
http://example.com/test2
http://example.com/test3

上記のように作成したディレクトリ「wp」を省いた形で表示させたいのですが可能でしょうか?
色々ググってみたのですが上の事例に該当する記事を見つけることができませんでした。。

ご存知の方いらっしゃいましたらアドバイスいただきたいです。
何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2016/08/18 02:25

例示用ドメインはご自身で所有されていない限りexample.comを利用してください。
guest

回答4

0

出来るか出来ないかで言えば「できないこともない」だと思います。
ただ、WPは(マルチサイトかどうかに関わらず)親サイトのindex.phpをハブに動作するため、
(例示の場合は http://example.com/wp/index.php)
これを認識出来ない場所(/wp/の外)に設定するのは、osmoc-1970さんの設定にプラスでサーバー側の設定が絡んでくると思われます。

なので、個人的にはあまりお勧めしません。
親サイトをドキュメントルートに置けないかどうか、
それが無理ならそもそも別ドメインで運用できないかをまず相談した方がよろしいかと思います。

投稿2016/08/19 04:07

bananacoffee

総合スコア260

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

paranoaman

2016/08/19 06:04

やはり処理的に推奨できない方法なんですね。。 どうしても難しければ相談します。 もうちょっとだけ少し粘っててます。 htaccessのRewriteCondでうまくディレクトリ名を消せないか試してみようかと思います。ご回答いただきありがとうございます!
bananacoffee

2016/08/19 06:36

どうしてもこの構成で・・・ということでしたら「リバースプロキシ(mod_proxy)」あたりを調べてみるとよろしいかと思います。 Apacheのバージョンにもよりますが、htaccessでゴニョゴニョできます。
paranoaman

2016/08/22 00:07

ご回答いただきありがとうございます! 軽く調べてみましたがなんだかできそうな気配!! 試してみます、ありがとうございます!
paranoaman

2016/08/23 03:35

色々とやっております。 まだ解決しておりませんが少しだけ進みました。 http://example.com/wp/test1 上記の子サイトがあるとして、、 /wp/より上のディレクトリに.htaccessファイルを作り以下の記述をいたしました。 RewriteRule ^test1 wp/test1/ [L] そのあと以下の手順で設定 ↓ 管理画面を特権管理者でログイン。 ↓ 「サイトネットワーク管理者」→「サイト」→該当の子サイトURLの「編集」をクリック ↓ 情報→「サイトアドレス (URL)」をhttp://example.com/test1に変更 ↓ 設定 Siteurl http://example.com/wp/test1 Home http://example.com/test1 に変更したらhttp://example.com/test1でアクセスできました! ところが。。 管理画面に入り子サイト「test1」のダッシュボードにアクセスできなくなりました。 おそらくサイトアドレス (URL)を変更したためだと思われますが解決方法ご存知でしょうか? たぶんですが.htaccessの RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] が影響しちゃってるように思います。。 htaccessがいまいち分からず。。 もう少しのような気がしてます!!
bananacoffee

2016/08/23 05:37

勉強がてらちょっと試してみましたが、mod_rewriteだと難しいかもしれません。 あと、mod_proxyはhtaccessでは設定できませんでしたね、すみません。 シンボリックリンクとダミーデータを駆使して構築に成功したので後ほど別回答にてご説明いたします。 前提としてSSHでの操作が必要になりますが利用可能でしょうか?
paranoaman

2016/08/23 06:33

ご回答いただきありがとうございます! SSHでの操作は可能です、是非ともご教授いただきたいです! よろしくお願いいたします!
guest

0

ベストアンサー

※表示と記事の管理ができたところまでしか確認していません。
トラブルの際は自己責任でお願いします。

URL用途
http://example.com/wp/親サイト
http://example.com/wp/test1/子サイト1
http://example.com/wp/test2/子サイト2
http://example.com/wp/dummy/ダミー(重要)

という状態から説明します。
行き過ぎている場合はここまでロールバックしてください。

子サイトのWP設定

/wp/ を外す。(Siteurl, Home両方)

子サイトのパス設定

シンボリックリンクを作成。(test1,test2のディレクトリが存在する場合は削除しておく)

# ドキュメントルートで実行 cd /path/to/document/root/ ln -s wp test1 ln -s wp test2

test1, test2へアクセスし、表示を確認。

フロント側はこれでアクセス可能だと思います。
管理画面にはこの段階では入れません。

管理画面に入れるように設定

  1. サイト管理よりダミーサイトの編集へ進み、URLを http://example.com/ にする。

(もちろん、ここにはWPは設置されていないため無視される)
これをやらないとサイト管理ができなくなります

  1. wp-config.phpを編集
# wp-config.php define('PATH_CURRENT_SITE', '/wp/'); ↓ define('PATH_CURRENT_SITE', '/');
  1. シンボリックリンクを作成
# ドキュメントルートで実行 cd /path/to/document/root/ ln -s wp wp-admin

これで全体を確認してみてください。
最終的にこうなります

URL用途
http://example.com/wp/親サイト
http://example.com/test1/子サイト1
http://example.com/test2/子サイト2
http://example.com/サイト管理にのみ利用(管理画面のみ)

この後、test3を作成する場合は、サイト作成とシンボリックリンクだけで通ります。(デフォルトで/wp/は外れています)
また、敢えて回りくどく解説しましたが、先にダミーを設定してしまえば、test1,2の設定も省略可能です。

ドキュメントルートにwp-adminのシンボリックリンクだけ出来てしまいますが、それだけ許容できれば・・・
サーバー側の設定をいじれればもっとスマートにできそうですが、これ以上はご自分で試行錯誤してください。

投稿2016/08/23 08:06

bananacoffee

総合スコア260

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

paranoaman

2016/08/24 00:50

本当にありがとうございます!無事解決しました! 運用も含め相談していくことになりそうですがこのような方法がありとても勉強になりました!個人的にはマルチサイトは運用面で不安があるんですがこの形で実装することになりそうです。 とても助かりました、ありがとうございます!!!
guest

0

ネットワークのダッシュボードから、左メニュー「サイト」でサイト一覧を出して、子サイトの「編集」でドメインとメンバーを変更できるUIが表示されますが、これは試されましたか?

(クリックでキャプチャ画面表示)

投稿2016/08/19 03:52

編集2016/08/19 03:58
osmoc-1970

総合スコア124

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

paranoaman

2016/08/19 05:26

ご回答いただきありがとうございます! こちらの方法も試しましたが駄目でした。 htaccessのReriteRuleでURLの書き換えを行ってみましたがDB接続でエラーがでるようになってしまいました。。 けっこう難しい処理なのかもしれません。。 とはいえありがとうございます!
guest

0

マルチサイトではどうなるかいまいちわかりませんが、とりあえずドメインルートにWordPress を移動するのではないでしょうか。(親は http://example.com/ になりますが、子サイトは書かれているのと同じになると思います)

【WordPress を専用ディレクトリに配置する - WordPress Codex 日本語版】
https://wpdocs.osdn.jp/WordPress_を専用ディレクトリに配置する

投稿2016/08/19 05:37

kei344

総合スコア69366

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

paranoaman

2016/08/19 06:07

ご回答いただきありがとうございます! ドメインルートはもう運用中のごっついシステムが入ってますので現実的にはドメインルートに置くのは難しい状況です。 一つの解決策としてはマルチサイトではなく一つずつディレクトリごとにWordpressを入れてしまうのも致仕方ないのかなと感じています。 もうしばし考えます、ご回答いただきありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問