通知
すべてクリア

回答募集サブディレクトリにインストールされているセキュリティwordpressの設定に関して

投稿: 2
 ktg
質問投稿者
コミュニティ参加日: 1週間前

サブディレクトリにインストールされているwordpressの設定方法がわかりません。

サーバーパネルにある、wordpressのセキュリティ設定の画面にはサブディレクトリにインストールされているwordpressは表示されません。

メインドメインにインストールされているwordpressは表示されます。

REST APIの設定を変更したいのですがどうすればいいですか?

対象サービス

5件の返信
投稿: 256
コミュニティ参加日: 1年前

ご指摘の「セキュリティwordpress」が「WordPressセキュリティ設定機能( https://www.xserver.ne.jp/manual/man_server_wpsecurity.php )」のこととして回答します。

 

https://www.example.com/subdirectory/ などのサブディレクトリにWordPressをインストールしている場合、そのドメイン名(例示したものだと「example.com」)の設定を切り替えることで、サブディレクトリにインストールしたWordPressにおいても、設定の変更が適用されます。

※当然、メインドメイン(ドメイン名直下で、サブディレクトリではない箇所)に設置したWordPressに対しても、設定の変更は適用されます。

 

 

WordPressセキュリティ設定は、インストールしたWordPressごとに設定を切り替えるものではなく、「ドメイン名単位」で設定を切り替える機能です。

投稿者:: ktg

サーバーパネルにある、wordpressのセキュリティ設定の画面にはサブディレクトリにインストールされているwordpressは表示されません。

メインドメインにインストールされているwordpressは表示されます。

ややこしい表記ではありますが、

○ドメインごとに設定を切り替えるため、サーバーパネルの「WordPressセキュリティ設定」をクリックした後の画面では、ドメイン名が表示されている

×ドメインごとに設定を切り替えるため、サーバーパネルの「WordPressセキュリティ設定」をクリックした後の画面に、ドメイン直下にインストールしたWordPressが表示されている

といったものとお考えください。


返信
はるか
投稿: 40
コミュニティ参加日: 1か月前

こんにちは。

当該ドメインでREST APIの制限(国外からのREST APIを禁止する)がONになっている場合は

サブディレクトリは何個あっても適用されます。

アクセス制限の設定で

「/wp-json … REST APIアクセス時に含まれるURL」

が対象となるため、サブディレクトリ、ルートディレクトリ関係ありません。

余談ですが、逆にwp-jsonという名称のREST APIをWordPress以外で使用してもブロックされますw

https://www.xserver.ne.jp/manual/man_server_wpsecurity.php#ipcheck


返信
投稿: 2
 ktg
質問投稿者
コミュニティ参加日: 1週間前

なるほど、ありがとうございます。

ちなみに、この設定はwordpressセキュリティの設定画面でしか変更できないのでしょうか?

メインドメインではREST APIは使えていますがサブディレクトリでは接続できていません。原因がわからず、もしかしたら何かしらのファイルをファイルマネージャーで変更してしまった可能性があります。

.htaccessなどファイルマネージャー上で変更、確認はできないでしょうか?


返信
2件の返信
はるか
コミュニティ参加日: 1か月前

投稿: 40

そもそもWordPressのセキュリティ設定は、Firewallで実施しているのか、AFWで実施しているのか

httpd.conf(nginx config)で実施しているのか分かりません。

ただ、おっしゃるとおり、指定の文字列を却下というのは、上述した機能で出来ます。

まず、なにが原因か確認してみてはどうでしょうか?

1)現在WordPressのセキュリティはONなのですよね?実験でOFFしてみる

2)サブディレクトリのREST-APIの動作を確認してみる

3)動作OKなら原因は一つで、 Automattic 社のような信頼できる会社以外のプラグイン等を使っている

4)動作NGならWordPressのセキュリティは全く関係ない

という事になります。

 

もし3なら、お使いのプラグインが海外からのアクセスを拒否するために発生していると思われます。

このプラグインがどんな機能か分かりませんので、なんともいえませんが

まずは、何のプラグインが原因か調べる事ですね。

 

あとこのセキュリティ機能ですが、当然nginx.confのフロントエンドであるhttpd.conf、つまり.htaccessで

設定することは可能と思われます。

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^wp-json$ [NC]
RewriteRule .* - [R=404,L]

 

正規表現を理解していないと難しいと思いますが、これでREST APIを404に出来ます。

また、海外からという条件も使えますが、私はそのフィルタをhtaccessで作りシンフリーで実装してみましたが

30個程度のIPを記載したら500エラーになりました。

あまりにも使えないので諦めましたがw

とりあえず、htaccessの仕組みは、できるだろうということで、実験もしてないので参考程度に。

 

まずは、サブディレクトリでRESTがつかえない原因を調べてみませんか。

日本からは基本的に許可されているので、代替の仕掛もありそうですし、第一ルートのWordPressは動作しているのですよね。


返信
コミュニティ参加日: 1年前

投稿: 256

「WordPressからREST APIを利用できないように制限する設定」については、はるかさんが記載しているとおり様々な方法がありますが、

・ktgさんがREST APIを制限する記述を.htaccessに直接記載した場合

・REST APIを制限する設定を何かしらのツールで制限を有効にした結果、そのツールの仕様で、制限する旨の内容が.htaccessに書き込まれた場合

などであれば、ファイルマネージャー上で.htaccessの内容を確認すれば、「そのような設定がされているか」や「設定を解除する方法」などが確認できると思います。

言い換えると、REST APIを制限する方法によっては、.htaccessには特に何も書き込まれないようです。

 

 

なお、エックスサーバーでは2025年の3月頃に以下のニュースを掲載しており、それ以降は、「簡単インストール機能で新規にインストールするWordPress」において、セキュリティ対策プラグインが同時にインストールされているようです。

▼「WordPress簡単インストール」機能におけるセキュリティ対策プラグイン対応のお知らせ
https://www.xserver.ne.jp/news_detail.php?view_id=15129

 

セキュリティプラグインのドキュメントを見る限りでは、「REST API無効化機能」も提供されていました。

▼CloudSecure WP Security マニュアル REST API無効化
https://wpplugin.cloudsecure.ne.jp/cloudsecure_wp_security/disable_restapi.php

 

・ドメイン直下のWordPress・・・REST APIが使える

・サブディレクトリのWordPress・・・REST APIが使えない

といった違いがあり、なおかつ、「WordPressをインストールした時期」に大きな違いがある場合、「セキュリティ対策プラグインがインストールされていないか」や「セキュリティ対策プラグインのなかでREST APIが制限されていないか」を見てみるとよいかもしれません。

 

ざっと調べた限りでは、こういったセキュリティ対策プラグインでREST APIを無効化する場合、一般的にはwp-jsonにアクセスしたときのWordPress側の一連の処理に割り込む(フックする)形でエラーコードを吐き出すなどの処理をするようで、.htaccessにその旨を書きこむ方式ではないようです。

 

 


返信
コミュニティをご活用いただきありがとうございます

質問・回答いただきありがとうございました。

■質問者様へ
質問が解決した際には、回答者の方へお礼をお伝えいただくとともに、質問のステータスを「解決済み」に変更してください。