Apache+mod_rails環境で、公開時は認証不要の画面だが、テスト中なのでアクセス制限のためにbasic/digest認証を使用したい。
httpd.confのDirectoryディレクティブにRailsのpublicディレクトリを指定してBasic認証を設定すると、Railsのpublicディレクトリに置いた静的なhtmlだけが認証の対象になり、アプリ全体が認証の対象になりませんでした。
Locationディレクティブならばアプリ全体の認証に対して認証が有効になるようです。
<VirtualHost *> ServerName example.com DocumentRoot /var/www/example.com/railsroot/public <Location /> AuthType Digest AuthName "On Testing" AuthDigestProvider file AuthUserFile /var/www/example.com/htdigestfile Require valid-user </Location> </VirtualHost>
Rails自身がbasic認証機能を持っていますが、ソースコードに手を入れる必要があるため、テスト中のみのような一時的な使用には向いていません。