schedule2020-04-06

htaccessを使わない方が良いとApacheとNginxの公式が言っている

Laravelの.htaccessの設定を調べている中、.htaccessってNginxでも使えるのかなと調べました。 表題の通りApacheもNginxも.htaccessは使わない方が良いとの結論を出していました。 両方の公式から理由をまとめてみます。

Apacheでは.htaccessを極力使わない方が良い

一般的に、サーバの主設定ファイルにアクセスできない場合を除いて、 .htaccess ファイルの使用は極力避けてください。

Apache チュートリアル: .htaccess ファイル | httpd.apache.org

その理由として性能とセキュリティの理由を挙げています。

性能面

.htaccessの利用を許可すると、Apacheは各ディレクトリで.htaccessファイルを探します。 これは.htaccessが無いディレクトリでも同様に探しますし、文書がリクエストされる度に読み込みます。

そのため、Apacheの主設定に記載することでパフォーマンスをあげることができます。 httpd.confやそこからインクルードしたファイルの設定がApacheの主設定です。 これはApacheの起動かリロード時にまとめてキャッシュするため、.htaccessを使うより性能が良い。

セキュリティ面

ユーザにサーバの設定を変更することを 許可することになりますので、あなた自身が管理できない変更をされる恐れがあります。 「コンテンツ提供者がディレクトリ毎の設定を行ないたいけれど、サーバシステムのrootアクセス権限を持っていない」場合にのみ使うべきものです。

.htaccessファイル の使用を完全に無効にするためにはAllowOverride Noneと設定します。

Nginx で.htaccessはどういう扱いか?

公式から.htaccessについての見解が出ています。 Like Apache: .htaccess | nginx.com

簡潔にまとめると「パフォーマンスに悪影響だからディレクトリ見るたびに.htaccessがあるか確認するなんてうちではやらないよ」ってことらしいです。

おわりに

性能とセキュリティが必要な本番環境は.htaccessを使わないようにしていきたい。 お客さんへの確認用のVirtualHostがたくさん載ったサーバの管理のみに限定する。