エックスサーバーの「Xアクセラレータ」で「.htaccessにAllow/Denyの設定が含まれています」と注意喚起されることがあります。これは.htaccessに公開を制限するための記述があることを示しています。「Xアクセラレータ」をONにするとそれが無効化される可能性があるというのです。
具体的にどんな影響があるのでしょうか。
たとえばSSL化でhttp://からhttps://への301リダイレクトを設定していたところそれが無効になりました。サイトをhttp://で長く運営し、かつSSL化直後の方は注意が必要です。
またWordPressプラグインSiteGuardの「管理ページアクセス制限」を有効にしている方もご注意ください。「/wp-admin/」へのアクセスが404エラーとなるはずが無効化されます。
「Xアクセラレータ」をONにする前に
エックスサーバーで「Xアクセラレータ Ver.1」を設定すると以下のダイアログが表示されました。
メインの文章を取り出すと
「Xアクセラレータ」をONにする前にご確認ください
以下の.htaccessにAllow/Denyの設定が含まれています。
/home/xxxxxxxx/xxxxxxxxxxxxx/public_html/.htaccess
/home/xxxxxxxx/xxxxxxxxxxxxx/public_html/xxxxxxxxxxxxx/.htaccessAllow/Denyで特定のユーザーや特定の環境のみに公開を制限している場合、
Xアクセラレータを「ON」にすることによって、
公開を制限しているコンテンツの情報がサーバー上にキャッシュされ、
意図しないユーザーがそれらのデータへアクセス可能になることがあります。公開を制限したいコンテンツがある場合は十分にご注意ください。
となっています。
ポイントになる部分を赤字にしてみました。よく読むと
.htaccessファイルで設定している公開制限が無効になる
可能性があるらしいです。
「ん、何か公開制限してたかな?」
と思ったので、.htaccessを開いてみました。
.htaccessを開くと「https://」「301」の記述が
エックスサーバー サーバーパネル にログイン後のトップページ「.htaccess編集」から.htaccessファイルを開きます。
タグをチェックすると、書き換えを指示するモジュール設定<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エラーに
なる機能に関連する記述です。
WordPressでの「管理ページアクセス制限」の設定方法は
[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アクセラレータ」導入の可否を判断しましょう。
コメント