本サイトはアフィリエイトプログラムによる収益を得ています

エックスサーバーのXアクセラレータで「.htaccessにAllow/Denyの設定」に注意が必要な理由

この記事は約6分で読めます。

エックスサーバーの「Xアクセラレータ」で「.htaccessにAllow/Denyの設定が含まれています」と注意喚起されることがあります。これは.htaccessに公開を制限するための記述があることを示しています。「Xアクセラレータ」をONにするとそれが無効化される可能性があるというのです。

具体的にどんな影響があるのでしょうか。

たとえばSSL化でhttp://からhttps://への301リダイレクトを設定していたところそれが無効になりました。サイトをhttp://で長く運営し、かつSSL化直後の方は注意が必要です。

またWordPressプラグインSiteGuardの「管理ページアクセス制限」を有効にしている方もご注意ください。「/wp-admin/」へのアクセスが404エラーとなるはずが無効化されます。

 

スポンサーリンク

「Xアクセラレータ」をONにする前に

エックスサーバーで「Xアクセラレータ Ver.1」を設定すると以下のダイアログが表示されました。

xserver_accelerator01

出典:エックスサーバー サーバーパネル

メインの文章を取り出すと

「Xアクセラレータ」をONにする前にご確認ください

以下の.htaccessにAllow/Denyの設定が含まれています。

/home/xxxxxxxx/xxxxxxxxxxxxx/public_html/.htaccess
/home/xxxxxxxx/xxxxxxxxxxxxx/public_html/xxxxxxxxxxxxx/.htaccess

Allow/Denyで特定のユーザーや特定の環境のみに公開を制限している場合
Xアクセラレータを「ON」にすることによって、
公開を制限しているコンテンツの情報がサーバー上にキャッシュされ、
意図しないユーザーがそれらのデータへアクセス可能になることがあります。

公開を制限したいコンテンツがある場合は十分にご注意ください。

出典:エックスサーバー サーバーパネル

となっています。

ポイントになる部分を赤字にしてみました。よく読むと

.htaccessファイルで設定している公開制限が無効になる

可能性があるらしいです。

「ん、何か公開制限してたかな?」

と思ったので、.htaccessを開いてみました。

 

.htaccessを開くと「https://」「301」の記述が

エックスサーバー サーバーパネル にログイン後のトップページ「.htaccess編集」から.htaccessファイルを開きます。

xserver_accelerator05

出典:エックスサーバー サーバーパネル

タグをチェックすると、書き換えを指示するモジュール設定<IfModule mod_rewrite.c>のあとに

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

の記述がありました。

どうやら「https://への301リダイレクト」に関する公開制限を掛けていたようです。すっかり忘れていました。

 

https://への301リダイレクトの変化

「https://の301リダイレクト」に関する公開制限はどのように機能しているのでしょうか。

検証すると以下のことがわかりました。

http://it.sorayori.comにアクセスすると自動的にSSL化後のURLであるhttps://it.sorayori.comにアクセス

してくれました。

ところが「Xアクセラレータ」をONにすると

http://it.sorayori.comにアクセスするとそのままSSL化前のURLであるhttp://it.sorayori.comにアクセス

してしまいました。

 

https://への301リダイレクトで注意したいこと

IT-SORAYORIはそらよりブログから分割して誕生したサイトです。分割直後からSSL化を実施しており、SNSやメール、その他の配布物などでhttp://it.sorayori.comのURLが流布していることはありません。

つまり最初からhttp://it.sorayori.comにアクセスされることはほとんどないと思われます。

以上のようなケースの場合「.htaccessファイルで設定しているSSL化に関する公開制限が無効になる」影響は軽微といえます。

一方、

サイトをhttp://で長く運営し、かつSSL化直後のケースは注意

が必要です。

なぜならSNSやメール、その他の配布物などでSSL化前のhttp://のURLが広く流布している可能性が高いからです。せっかくセキュリティレベルを上げたのに、相変わらずhttp://が利用されるのでは意味がありません。

「Xアクセラレータ」の設定は慎重に行いましょう。

 

.htaccessにはプラグインSiteGuardの公開制限も

IT-SORAYORIではプラグインSiteGuardを有効化しています。

前述の.htaccessファイルを開くと同様に

書き換えを指示するモジュール設定<IfModule mod_rewrite.c>のあとに

RewriteRule ^wp-signup.php 404-siteguard [L]の記述がありました。

これは、

管理ページアクセス制限を有効にしている場合、ログインしていない接続元からの管理ページ(/wp-admin/)へのアクセスは、404エラーに

出典:SiteGuard WP Plugin>FAQ

なる機能に関連する記述です。

WordPressでの「管理ページアクセス制限」の設定方法は

xserver_accelerator06

[1] ダッシュボードの「SiteGuard」から「管理ページアクセス制限」を選択

[2] 「ON」(画像はONの状態)をクリック

 

管理画面の404エラーの変化と注意したいこと

「Xアクセラレータ」をONにすると「管理ページアクセス制限」は無効化され、管理ページ(/wp-admin/)へのアクセスが可能となります。

404エラーページへは誘導されません。/wp-admin/は一般的な管理ページのアドレスです。つまり

セキュリティレベルがそれなりに低下する

ということです。

「Xアクセラレータ」の設定は以上をしっかり理解した上で行いましょう。

 

.htaccessの見極めポイント

「Xアクセラレータ」をONにすると.htaccessファイルで設定している公開制限が無効になるのは、ほかにどんなケースがあるでしょう。

具体的な事例を挙げることはできませんが、.htaccessファイルの記述から突きとめることが可能です。

IT-SORAYORIの記事の一部はそらよりブログからの301リダイレクトが設定されています。これについては「Xアクセラレータ」をONにしても不具合が発生することはありませんでした。

.htaccessファイルを確認すると、この部分には<IfModule mod_rewrite.c>の記述はありませんでした。

タグに詳しくないので、あくまで推測ですが

<IfModule mod_rewrite.c>から閉じタグの間にルールが書かれているか否かで無効化される機能の有無が判断できる

ただし# BEGIN WordPress以降の記述は無視してよい

ようです。

 

まとめ

「Xアクセラレータ」はエックスサーバーならではの効果的な高速化ツールです。しかしその反面、たとえばセキュリティレベルが低下する恐れがあります。「.htaccessにAllow/Denyの設定が含まれています」と注意喚起されたら.htaccessファイルの記述を確認し、無効化される可能性のある機能を確認し、「Xアクセラレータ」導入の可否を判断しましょう。

 

コメント

タイトルとURLをコピーしました