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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

4117閲覧

WordPressで作成したサブディレクトリ型マルチサイトが404 Not Foundになる

kamozaka

総合スコア12

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2021/12/05 11:49

編集2021/12/15 08:19

前提・実現したいこと

WordPressでサブディレクトリ型のマルチサイトを構築しようとしています。
サーバはカラフルボックスを使用しています。

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

子サイトの「トップページ」と「WordPressのダッシュボード」が「404 Not Found」になってしまい、解決法が分からずに困っています。

正確なエラーメッセージの全文は

404 Not Found
The resource requested could not be found on this server!

です。

該当のソースコード

wp-config.phpの一部(追加した部分):

PHP

1define( 'WP_DEBUG', false ); 2 3/* マルチサイト有効化 */ 4/* 参考1:WordPressマルチサイト徹底解説 https://kinsta.com/jp/blog/wordpress-multisite/ */ 5/* 参考2:Wordpressのマルチサイト機能で複数のサイトを管理(サブディレクトリ) - WordPressの使い方と設定 - Webkaru https://webkaru.net/wordpress/multi-sites/ */ 6define( 'WP_ALLOW_MULTISITE', true ); 7 8/* WordPressでサイトネットワークを作成した時に「サイトネットワークの設置」画面で追加を指示されたコード */ 9define('MULTISITE', true); 10define('SUBDOMAIN_INSTALL', false); 11define('DOMAIN_CURRENT_SITE', 'XXXXXXXX.net'); 12define('PATH_CURRENT_SITE', '/'); 13define('SITE_ID_CURRENT_SITE', 1); 14define('BLOG_ID_CURRENT_SITE', 1); 15 16/* That's all, stop editing! Happy publishing. */

.htaccess:

#---------------------------------------------------------------------- # WordPressでサイトネットワークを作成した時に「サイトネットワークの設置」画面で追加を指示されたコード RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 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] #---------------------------------------------------------------------- # httpからhttpsへ!既存サイトのSSL化【WordPress】 https://claccico.com/ssl-xserver2/ # の「2-3.「.htaccess編集」でリダイレクトの設定」のコード # ※この3行の削除も試しましたが、結果は同じでした。 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] #---------------------------------------------------------------------- # BEGIN WordPress # `BEGIN WordPress` から `END WordPress` までのディレクティブ (行) は # 動的に生成され、WordPress フィルターによってのみ修正が可能です。 # これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress # php -- BEGIN cPanel-generated handler, do not edit # “ea-php72” パッケージを既定の “PHP” プログラミング言語として設定します。 <IfModule mime_module> AddHandler application/x-httpd-ea-php72 .php .php7 .phtml </IfModule> # php -- END cPanel-generated handler, do not edit

試したこと

・teratailで調べたこと
「wordpress」「マルチサイト」「サブディレクトリ」などの語を組み合わせて検索し、12個ほどのページを見ましたが、解決には至りませんでした。

・「.htaccess」と「wp-config.php」の変更について
上記したもの以外にも、部分的に変更や削除をして色々なパターンを試したのですが、どれも結果は同じでした。
上記ソースコード中に追記した「※この3行の削除も試しましたが、結果は同じでした。」というのもその1つです。
試した全てのパターンを示すのは煩雑になるので、本投稿では避けています。

補足情報

・SSLの設定について
2つ目のブログの作り方!WordPressを複数インストールする方法を紹介 | 初心者のためのブログ始め方講座
の「2.サーバーに独自ドメイン・SSLの設定を行う」で挙げられているエックスサーバーの手順を、カラフルボックスに読み替えて実施しました。
これにより「404 Not Found」が出るようになり、本質問の問題の状態に至りました。
これ以前にどんなエラーが出ていたのかは忘れてしまいましたが、エラーの内容が変化したので、SSLに関する設定については成功したと判断しました。

WordPressの常時SSL化対応方法 – ColorfulBox(カラフルボックス) サポートサイト
も確認済みです。

・wp-config.phpにおける改行コードの混在について
wp-config.phpの編集にはWindows10上でサクラエディタを使用していますが、変更して保存すると「改行コードが混在しています。現在の改行コードCRに統一しますか?」と出ます。
「はい」を選択した場合のwp-config.phpをアップロードしたら正常動作しないことがわかったので、以後は「いいえ」を選択するようにしています。従って、編集によって不具合が生じている可能性はないと思います。

そもそも混在しないようにできないのかと調べてみましたが、未編集の(=WordPressでサイトを作った時の状態の)wp-config.phpであってもこの質問が出るので、最初から混在している、つまりWordPressまたはwp-config.phpの仕様なのだろうと解釈しています。(なんだか理不尽だなぁとは思いますが…)

[2121/12/15追記]
その後、やはりこの点の理解がいい加減なままなのはダメだと考え直し、
改行コード – WordPressの使い方
を参考に、文字コードをUTF-8N、改行コードをLFに明示的に指定して保存するようにしました。
この点はこれで解決されたと思います。但し、発生する現象としては全く同じで、未解決のままです。

・背景など
私は主にC++で開発をしてきたプログラマですが、Webサイト構築については素人で、Apacheの設定は初めてでした。
分からないなりにできるだけWebで調べてみたのですが、自力では無理そうだったので質問させて頂くことにしました。
一般的なプログラミング言語と比較すると、本件は「何が問題なのか」の手掛かりとなるコンパイルエラーメッセージのような情報が存在しないので、手探りでやってみるしかなく、問題解決が難しいと感じています。

所見として、一見ハードルが低そう(=非エンジニアでもできそう)に見えた「WordPressによるWebサイト作成」という分野において、突然、その筋の技術者でなければ解決困難であるような問題が出てきたので驚いています。
WordPressの「サイトネットワークの設置」画面に表示される指示は、さも「この通りにやればできますよ」という感じなのに、これほど大きくつまずくとは予想外でした。
恐らく基本的な使い方だけをしている分にはハードルは低いのでしょうが、私が何気なく手を出した「マルチサイト構築」というのは、その中でも専門知識を要する領域だったのですね。

私の認識としてはそんなところですが、「みんなどうやってこの手の問題をクリアしているのだろう?」「もしApacheの技術者がこの問題を自力で解決するとしたらどうするのだろう?」と言った辺りがやはり疑問なので、後学のため、できればその辺りもご教示頂けるとありがたいです。

よろしくお願い致します。


追記
・2021/12/6 18:36
「wp-config.phpにおける改行コードの混在について」の表現におかしい点があったので修正しました。「最初から混在している」と書いているのに、その前で「混在は回避できています」と書いてしまっていて矛盾していました。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

もうすでに解決済みかもしれませんが、

  • wp-config.phpのDOMAIN_CURRENT_SITEはご自身のドメインを記載していますか?
  • .htaccessの# BEGIN WordPressから# END WordPressまでの記述をコメントアウトしてみてください。

投稿2022/08/15 07:37

sknmnm

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問