質問: ### 前提・実現したいこと 現在NTTのWebメール&ビジネスにてマルチサイトのWordpressサイトを作っています。 ディレクトリ/wordpress/をURLから消す作業中、以下のような状態となりました。 ### 発生している問題・エラーメッセージ ・子サイトのダッシュボードを表示すると、親サイトと全く同じメニュー・カスタムメニューが表示されてしまう。 メニューを押すと、親サイトのコンテンツが表示されてしまい 設定ページを含めたメニューも親サイトと同じものが表示される(URLは子サイトのパス) ・親サイト、子サイトのURLはまともに表示される。 ``` htaccessやconfigファイルの問題かと思っていますが、当方初学者のため原因を究明できておりません。 ・心当たりとしては、/wordpress/というパスをサイトURLに表示しない為に.htaccessとindex.phpをホームディレクトリ"htdocs"へ設置している事、 インストールディレクトリ"wordpress"にもhtaccessを保管している事です。 ※消すとwp-adminでinternal server errorになります。 htaccessの内容1(場所:ホームディレクトリ"htdocs") # BEGIN WordPress 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] # END WordPress htaccessの内容2(場所:インストールディレクトリ"wordpress") # BEGIN WordPress 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] # END WordPress ``` ### 試したこと ・/wordpress/内htaccessの削除(サーバーエラーになる為戻しました) ・configファイルとhtaccessとサイトネットワーク管理のタグとの照らし合わせ ・データベースの移行をやり直し ### 補足情報(FW/ツールのバージョンなど) Wordpress 5.0.3
回答: なかなか回答がつかないようなので、試してみました。 下記の手順で、問題なく変更できることを確認できした。 .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` から管理画面にログインして、「設定」「パーマリンク設定」を開いてそのまま「変更を保存」ボタンを押してパーマリンクを更新。 (同様に全部の子サイトでそれぞれ実施。)