WordPressのマルチサイト設定で管理画面にログインしようとしたら404エラーが出た時の話

WPサイトの案件でマルチサイトで英語版ページを作って欲しいというのがあったので、ご要望通りにマルチサイト化の設定をしたわけなんですがな。

ただ、WPのトップページが既にサブディレクトリの状態でサブディレクトリ形式のマルチサイト設定をしたら管理画面へのログインがちょっとおかしいことになったのでその対処法をメモメモ。

件のURL構成はこんな感じです↓

WPマルチサイト時のURL構成


 
ドメインのトップページ(hogehoge.com)には既に別ページが乗っかっており、「hogehoge.com/blog/」というサブディレクトリ上でWordpressを表示していたわけです。
この状態で「hogehoge.com/blog/english/」というURLにマルチサイトで別ブログを表示する設定を通常のやり方でやってみました。

普通に成功しました。

と思いきや、英語版の管理画面URL「hogehoge.com/blog/english/wp-admin」にアクセスしても”404 not found”・・・・。

なんでやねん(´・ω・`)

といろいろと試行錯誤したところ .htaccessを編集したら無事に解決。
マルチサイトの設定(項目名で言うと”ネットワークの設置”)の時に出てくる.htaccessの内容を

RewriteEngine On
RewriteBase /blog/
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).*) ******/*****/***/**/*/*/*********/*/*/*********/hogehoge.com/blog/wordpress-4.0-ja-jetpack-undernavicontrol/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\\.php)$ ******/*****/***/**/*/*/*********/*/*/*********/hogehoge.com/blog/wordpress-4.0-ja-jetpack-undernavicontrol/$2 [L]
RewriteRule . index.php [L]

から

RewriteEngine On
RewriteBase /blog/
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).*) wp/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\\.php)$ wp/$2 [L]
RewriteRule . index.php [L]

に変更しただけです。

そもそも”wordpress-4.0-ja-jetpack-undernavicontrol”という謎URL指定は何なんですかね?
jetpackは別にマルチサイトに関係無いと思うんですがねー。

うーむ、謎。

大阪の江坂でウェブ制作をしている、インフラもシステムもデザインもディレクションもできるエンジニア。 広く浅く薄っぺらくですが(笑)

Leave a reply:

Your email address will not be published.