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

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

ただいまの
回答率

89.98%

Wordpressマルチサイト 子サイトのダッシュボードの不具合

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 742

ink_

score 4

前提・実現したいこと

現在NTTのWebメール&ビジネスにてマルチサイトのWordpressサイトを作っています。
ディレクトリ/wordpress/をURLから消す作業中、以下のような状態となりました。

発生している問題・エラーメッセージ

・子サイトのダッシュボードを表示すると、親サイトと全く同じメニュー・カスタムメニューが表示されてしまう。
メニューを押すと、親サイトのコンテンツが表示されてしまい
設定ページを含めたメニューも親サイトと同じものが表示される(URLは子サイトのパス)
・親サイト、子サイトのURLはまともに表示される。

htaccessやconfigファイルの問題かと思っていますが、当方初学者のため原因を究明できておりません。
・心当たりとしては、/wordpress/というパスをサイトURLに表示しない為に.htaccessとindex.phpをホームディレクトリ"htdocs"へ設置している事、
インストールディレクトリ"wordpress"にもhtaccessを保管している事です。
※消すとwp-adminでinternal server errorになります。

htaccessの内容①(場所:ホームディレクトリ"htdocs")
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]


</IfModule>

# END WordPress

htaccessの内容②(場所:インストールディレクトリ"wordpress")
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

</IfModule>

# END WordPress

試したこと

・/wordpress/内htaccessの削除(サーバーエラーになる為戻しました)
・configファイルとhtaccessとサイトネットワーク管理のタグとの照らし合わせ
・データベースの移行をやり直し

補足情報(FW/ツールのバージョンなど)

Wordpress 5.0.3

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • CHERRY

    2019/03/12 10:17

    マルチサイトを設置後に .htaccess を変更して、URL から、wordpress を消したということでしょうか?

    キャンセル

  • ink_

    2019/03/12 11:16

    左様でございます。

    /wordpress/で設置したマルチサイトからwordpressのパスを消した。
    というのが現在の状況です。

    キャンセル

  • CHERRY

    2019/03/12 11:33

    マルチサイトの場合、データベース内にも URL が保存されていますが、これらも書き換えていますか?

    キャンセル

  • ink_

    2019/03/12 11:42

    wp_options、wp_2_options、wp_blogs、wp_siteなどURL関連の置換を完了しています。
    (ディレクトリに沿ってoptionsのsiteurlは/wordpress/残しです。)

    キャンセル

回答 1

0

なかなか回答がつかないようなので、試してみました。

下記の手順で、問題なく変更できることを確認できした。
.htaccess を変更する必要はなさそうです。


  • 前提
  1. www/ が、ドキュメントルートになっている環境で、 wordpress ディレクトリにインストール ( http://example.com/wordpress/ ) して、マルチサイト化。
  2. 子サイトとして、 abc ( http://example.com/wordpress/abc ) と xyz ( http://example.com/wordpress/xyz ) を作成。
  3. それぞれにログインできることを確認済。
  • URL変更方法
  1. すべてのプラグインを無効にする。
  2. www/wordpress/.htaccess と www/wordpress/index.php を www/ にコピーする。
  3. www/index.php を編集して、 require( dirname( __FILE__ ) . '/wp-blog-header.php' ); を require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' ); に変更。
  4. www/wordpress/wp-config.php を編集し、  define('PATH_CURRENT_SITE', '/wordpress/');  を define('PATH_CURRENT_SITE', '/'); に変更する。
  5. データベース内部の URL を置き換える。
    (メインサイト関係)
    wp_options の siteurl と home を http://example.jp/wordpress/ から http://example.jp へ。 
    wp_site の path から wordpress を取り除く。( メインは、/wordpress/ を / へ。子サイトの /wordpress/abc を /abc にする。 )
    wp_blogs の path から wordpress を取り除く。
    (子サイト関係)
    各子サイトの wp_(数字)_options の siteurl と home から wordpress を取り除く。
    wp_2_options の siteurl と home を http://example.jp/wordpress/abc から http://example.jp/abc へ。
    wp_3_options の siteurl と home を http://example.jp/wordpress/xyz から http://example.jp/xyz へ。
  6. (メインサイト) http://example.jp/wp-admin から管理画面にログインして、「設定」「パーマリンク設定」を開いてそのまま「変更を保存」ボタンを押してパーマリンクを更新。
  7. (子サイト) http://example.jp/abc/wp-admin から管理画面にログインして、「設定」「パーマリンク設定」を開いてそのまま「変更を保存」ボタンを押してパーマリンクを更新。 (同様に全部の子サイトでそれぞれ実施。)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 89.98%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる