さくらインターネットさんのレンタルサーバーに新しいドメインを追加して、ルート以外のパスに WordPress をインストールしようとした場合、表示などがおかしくなる場合があります
mod_rewrite の設定を再確認しないとサブディレクトリにアクセスしたとき、テーマが適応されていなかったり、ダッシュボードにアクセス出来ない場合があります
そう言う場合、WordPress の用意した .htaccess の内容を修正する事で何とかなります
発生条件
ドメインを追加して、追加ドメインのパスを /blog 等として WordPress をインストールし、ブログ用のドメインに設定した場合、
通常の手順でサブディレクトリにサイトを追加しても、エラーします
現象は
- サブディレクトリのブログにテーマが適応されない
- ダッシュボードにアクセスしようとすると Internal Server Error 500 が発生する
でも、それ以外は正常に動いているような気がします
対処
WordPress が用意した .htaccess の内容を少し修正します
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).*) blog/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ blog/$2 [L]
RewriteRule . index.php [L]
/blog というディレクトリに 追加したドメインを割り当てると、こう言う .htaccess の修正内容を提示してきます
ですが、このままでは Internal Server Error 500 が発生します
話は簡単で、 blog/ というパスの指定を書き換えます
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]
これで行けると思います
サブドメインなどは別の設定なので時間があったらまた書きますが、今回の案件はサブディレクトリで行きたいと思います