web-dev-qa-db-ja.com

htaccessでawstatsを保護する

認証されていないサイトと認証されている別のサイトがあるようにawstatsを設定しようとしています。すなわち
domain/awstats/awstats.pl?config =[〜#〜] x [〜#〜]すべきではありませんt認証される
domain/awstats/awstats.pl?config =[〜#〜] y [〜#〜]認証済み

多くの検索を行った後、これがクエリ文字列に関連しているため、解決策が見つかりませんでした。

1
ShadowFlame

私の頭の上から、これがあなたがそれをすることができる1つの方法です。ローカルホストのみをリッスンする仮想ホストにawstatsを配置することから始めます。

<VirtualHost 127.0.0.1:8080>
...
</VirtualHost>

Insideその仮想ホストには、パスベースのURLを適切なクエリ文字列に変換するRewriteRulesを含めます。

RewriteRule /awstats/config/(.*) /awstats/awstats.pl?config=$1

これを配置すると、次の場所にアクセスできます。

/awstats/awstats.pl?config=X

使用:

/awstats/config/X

ただし、現時点では、これはすべてlocalhostを介してのみ利用可能であることに注意してください。外部接続はまだ確立されていません。そのために、メインサーバーの構成に<Location>ブロックを配置します。

  • 必要なアクセス制御を実装する
  • 「内部」仮想ホストへのプロキシリクエスト

このような:

<Location /awstats/config/X>
  ProxyPass http://localhost:8080/awstats/config/X
</Location>

<Location /awstats/config/Y>
  AuthType Basic
  AuthName "awstats X"
  AuthBasicProvider file
  AuthUserFile /path/to/htpasswd
  require valid-user

  ProxyPass http://localhost:8080/awstats/config/Y
</Location>

これはすべてすぐに使えるので、ここでいくつかのエラーがある可能性は十分にありますが、基本的な考え方は健全です。

2
larsks