• ベストアンサー

apacheで、ベーシック認証の設定をhttpd.confに記述する理由は?

apacheで、ベーシック認証をアプリケーション毎に設定しようとしています。 方法としては、.htaccessを各アプリケーション毎に設定する方法と、httpd.confの<Directory>コンテナに各アプリケーション毎の認証を設定する方法がある所までは解りました。 あるサイトでは、この2つの方法のうち、後者のhttpd.confに一括して記述する方法を推奨していました。 しかし、推奨する理由が書いていないのです。 私としては、理由もなく方法を選択するというのが気持ち悪く、納得したいのです。 どなたか理由をご存じないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

 サーバ管理者であればhttpd.confの方が楽だし、どうなっているか俯瞰しやすいのではないでしょうか。どこでどういう設定をしているか、と言う事が一つの設定ファイルで分かるわけです。設定ファイルが分散してしまうと、何処でどう設定したか分からなくなる事もしばしば。  .htaccessは、管理者がユーザに権限を委譲する時に使うような場合を想定しています。そのフォルダ内の事はユーザに任せる、と言う事です。プロバイダ等ではこうするしか方法は無いですよね。サーバ管理者であればその必要が無い事は言うまでもありません。  .htaccessはhttpdサーバのルートフォルダ以下にありますので、FTPログインを許可している場合、仮にそのFTPのパスワードが破られた場合は編集されてしまいます。通常、httpd.confはFTPログインでは編集出来ない場所にあり、その他sshやtelnetでログインしても通常はroot権限でないと編集出来ない場所にありますから、セキュリティ的にもメリットがあります。

tennyasu
質問者

お礼

ありがとうございます。納得が行きました。 これで誰に何を言われても胸を張って説明できます。

その他の回答 (1)

  • potkurin
  • ベストアンサー率24% (33/134)
回答No.1

素人意見ですが、 前者はファイルがアプリケーションの個数分作成する必要があって、後者は1つのファイルの編集で済む、ということなのでしょうか? まと外れでしたらごめんなさい。

関連するQ&A

  • APACHEで参照するhttpd.confの場所を変更する方法がわかり

    APACHEで参照するhttpd.confの場所を変更する方法がわかりません。 とある理由で以下のような変更をしたいのですが良くわからず行き詰ってしまいました。 /etc/http/httpd.conf⇒/usr/local/apache/httpd.conf としたいのですが、どこでhttpd.confのディレクトリを設定しているかわからず困っています。 参照するhttpd.confの場所を変更する方法を教えてください。

  • .htaccess と .htpasswd と etc/apache2 にある httpd.conf

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=2160824 で質問していた者です。少し進展しましたが、もう一度ここでお願いいたします。SUSE Linux の Apache2 で ユーザー認証=Basic認証を、イントラネットで試みています。外へ、ではなく、中だけのWebサーバです。htpasswdをインストールして、.htpasswdができました。そのあと、.htaccess を作ったのですが、いろいろな場所においても、認証ボックスが出てきません。httpd.conf の <Directory "/--/--/">---</Directory>をいじってみたのですが、これは、httpdが動き出しませんでした。よろしくお願いいたします。

  • httpd.confで行う設定を.htaccessで行う方法

    こんにちはよろしくお願いします。 httpd.confで <Directory "/htdocs/cakeapp"> Allow from all </Directory> という設定をしなければなりません。 ところが,私の契約しているサーバーは,httpd.confを触れません。 そこで,.htaccessで設定する方法が有ると聞きました。これをを教えてくださいよろしくお願いします。

  • httpd.confに関して

    Windows版apache2.2.4のhttpd.confの設定をWeb等で調べながら行っていますが、自分がダウンロードしてきたhttpd.confとWeb上の表記が違っていて混乱しています。 例えばユーザディレクトリuserを作り、以下のURLで表示させたい場合、 http://localhost/~user/index.html 以下の設定をすれば良い、と書いてあります。 <IfModule mod_userdir.c> UserDir "C:/Program Files/Apache Group/Apache/users/" </IfModule> 上記記述は最初から私がダウンロードしたファイルにはありませんでした。 この部分をコピーペーストして試しましたがうまく表示されませんでした。 以下のことを教えていただけないでしょうか。 1)上記ユーザディレクトリを表示するにはどうすれば良いか。不足している記述等。 2)httpd.confの記述がダウンロード先によって違うのは何故か。バージョン情報などそれらの違いを識別する方法はあるのか。また、すべての機能を網羅したバージョン(?)は存在するのか。 以上、宜しくお願いします。

  • httpd.confで.htaccessの設定

    Apache/1.3.26を使用しています。 OSはDebian GNU/Linux 3.0です。 以前apacheのhttpd.confを設定して、.htaccessを 有効にしましたが、やはり無効にしたいので AccessFileName .htaccess を #AccessFileName .htaccess に変えました。 これでも、まだ .htaccess が有効なのですが まだ変更するところがあるのでしょうか? ちなみに AccessFileName None に変えると Noneというファイルでアクセス制限がかかります。

  • PHPとApacheの連携で、困ってます。httpd.confどこにあるのでしょう?

    PHPの設定をしました。Apacheのインストールもしました。PHPとApacheの連携を行う必要があるのですが、Apacheの設定ファイルであるhttpd.confを編集する必要があり、「%APACHE\HOME%/conf」フォルダのhttpd.confを変更しなければならないのですが、httpd.confと、「%APACHE\HOME%/conf」フォルダがどこにあるかわかりません。わかる方教えてください。大変困っています。よろしくお願いします。

    • ベストアンサー
    • PHP
  • Apacheでのベーシック認証

    Apacheでのwebサーバのベーシック認証を勉強しております。.htaccessにてvar/www/html/jikken/index.html をhttpsでしかアクセスできなくし、ベーシック認証にも成功いたしました。ですがvar/www/html/index.htmlには同じ設定をしてもhttpでアクセスできてしまいます。httpsの場合はきちんとベーシック認証をしてくれるのですがhttpの場合はアクセスできてしまうとともにベーシック認証もしません。 .htaccessの設定は SSLRequireSSL AuthUserFile /etc/httpd/conf/.htpasswd AuthGroupFile /dev/null AuthName "please enter your name" AuthType Basic require user hoge としてあり、httpd.confでは Directory "/var/www/html"> 以下の変更点はAllowOverride Allです。 OSはLinux Fedora Core 4です。 まとめるとhttp://hoge.jp/jikkenはアクセスできなくて(httpsで無ければアクセスできない+ベーシック認証) 同じ設定でhttp://hoge.jpではアクセス出来てしまうということです。(httpsのときは正常に作動する) ご教授よろしくお願いいたします。

  • httpd.confと.htaccessについて

    http://www.○○.jp/ とファイル名を指定せずにURLを打ち込んだ時にindex.htmlではなくindex.phpを 見に行くようにしたいので、 apacheのhttpd.confを設定したんですが、うまく.htaccessファイルを見に行ってくれません。 一応、下記のとおりAllowOverrideをAllにして、.htaccessを使用可能な状態にしたハズなのですが 何か足りない部分があるんでしょうか? ************************************* <Directory /> Options FollowSymLinks AllowOverride All </Directory> AccessFileName .htaccess ************************************* ちなみに.htaccessが使用可能でなくても、最初にindex.phpを見に行ってくれればOKなので 下記のようにhttpd.confに設定をしたのですが、やっぱりダメで 無条件でindex.htmlを見に行ってしまいます。 DirectoryIndex index.php index.html index.htm index.shtml index.cgi 何分、初心者なのでつまらない質問かもしれませんが 色々試みたんですが、お手上げ状態です。。 どなたかわかる方いらっしゃったらよろしくお願いいたします。

  • (apache2)htaccessの認証が動かない

    RedHat9.0使用、apache2は後からコンパイルして入れました。 .htaccessをおいたディレクトリをwebブラウザで参照しても、これまで通り、認証画面が表示されることもなく、画面が表示されてしまいます。 設定は以下のように行いました。 1.httpd.conf AllowOverride None → AllowOverride Limit AuthConfig apache2再起動 2.htpasswd -bc で.htpasswd ファイル作成 chmod 644 .htpasswd 3..htaccess設置 AutyType Basic AuthUserFile /home/.htpasswd AuthName "Members Only" require valid-user chmod 644 .htaccess ルートでもユーザのpublic_html内でもいろいろ試してみましたが、 .htaccessは無視されているように思えます。 httpd.confの設定のどこかがおかしいのではと思っていますが、いろいろ調べましたがよくわかりません。 調べるポイントだけでもアドバイスいただければ、助かります。 よろしくお願い致します。

  • httpd.confのアクセス制限の負荷について

    Apacheで14個のディレクトリに対し、アクセス制限を行いたいのですが、 .htaccessで制限するとサーバの負荷は上がってしまうと思うので、 .htaccessを使用せず、httpd.conf の<directory>でアクセス制限を 行う分には、サーバの負荷はそれほど上がらないでしょうか?