デザイン、プラグインなど個別に使用したいのでマルチサイトではなく、下層ディレクトリに別途WordPressをインストールしたのですがうまく表示されません。
下層ページのTOP以下(記事ページ)などを開くと親ブログの404エラーになります。表示することは可能でしょうか?
親ブログURL https://example.com/
子ブログURL https://example.com/wp/
親ブログの.htaccess
html
1<IfModule mod_rewrite.c> 2 RewriteEngine On 3 RewriteBase / 4 RewriteRule ^index.php$ - [L] 5 RewriteCond %{REQUEST_URI} !.(gif|css|js|swf|jpeg|jpg|jpe|png|ico|swd|pdf|svg|eot|ttf|woff)$ 6 RewriteCond %{REQUEST_FILENAME} !-f 7 RewriteCond %{REQUEST_FILENAME} !-d 8 RewriteCond %{REQUEST_URI} !(^/wp/) 9 RewriteRule . /index.php [L] 10</IfModule>
子ブログの.htaccess
html
1<IfModule mod_rewrite.c> 2 RewriteEngine On 3 RewriteBase /wp/ 4 RewriteRule ^index.php$ - [L] 5 RewriteCond %{REQUEST_URI} !.(gif|css|js|swf|jpeg|jpg|jpe|png|ico|swd|pdf|svg|eot|ttf|woff)$ 6 RewriteCond %{REQUEST_FILENAME} !-f 7 RewriteCond %{REQUEST_FILENAME} !-d 8 RewriteRule . /wp/index.php [L] 9</IfModule>
Webサーバーのログには、どのようなメッセージが出力されていますか?
情報が少ないので何ともいえないところではありますが・・・
単純に親サイトにwpっていうスラグを持つカテゴリーやタグ、投稿タイプなどありませんか??
エラーログは特に該当箇所でのログは見当たりませんでした。アクセスログは以下のような感じでした。
"GET /wp/hello-world/ HTTP/2.0" 404 8281 "https://example/wp/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36" "-"
momosiriさん
ディレクトリ名と同様のスラッグは特にありません。
親の.htaccessで該当ディレクトリを除外していますのでトップは表示されるんですが、その下層がでないです。
RewriteCond %{REQUEST_URI} !(^/wp/)
子ブログのURLがhttps://example.com/wp/で、特に親サイトにwpというスラグがないなら特に
RewriteCond %{REQUEST_URI} !(^/wp/)
の記述は必要ないと思うんですけどどうでしょう??
説明不足していましたが親のパーマリンク設定が以下のようにしているので除外していました。
https://example.com/投稿名/
/wp/は物理的にファイルがあるので表示されていますが、/wp/投稿名はファイルが存在しないので親の404になっているようなんですが・・・ちなみに該当箇所を外しても同じでした
上のコードを削除してサーバー上で上書き更新した上で、ブラウザのキャッシュをクリアするか、別の(今まで副サイトにアクセスしたことのない)ブラウザでアクセスしたらどうでしょう??
変わりませんでした・・・。
親側の WordPress で、 [管理画面]=>[設定]=>[パーマリンクの設定] を開いてそのまま [設定を保存]ボタンを押して、更新。
子側の WordPress サイトの管理画面にログインして、[パーマリンクの設定]を開いて同様に更新。
そして、アクセスするとどうなりますか?
どちらもそのままパーマリンク設定を更新すると変わらないのですが、子側のパーマリンク設定を投稿名から基本(?p=123)に変更すると表示されました!
表示されるということは、やはり.htaccessの設定の問題なんでしょうか。
基本(?p=123)に変更すると表示されました!・・・ということは、.htaccess自体が無視されてるのかもしれませんね。
https://codex.wordpress.org/Using_Permalinks
の公式コーデックスに出ているものですが、サーバー側で.htaccessを無視するようになっている場合には
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
を記述することで有効になることもあるようです。詳しくは上記リンクを参照してみてください。
親側のパーマリンク設定は投稿名になっているのでサーバー側の設定は有効だとは思います。
回答1件