2

以下は私の VHost です (一部の URL をわかりにくくするために若干変更されています)。

  1 NameVirtualHost 192.168.1.49:80
  2
  3 <仮想ホスト 192.168.1.49:80>
  4 ServerName 内部名.local
  5 ServerAlias *.internal-name.local external-domain.co.uk *.external-domain.co.uk
  6
  7 <ディレクトリ "/var/www/html">
  8 AllowOverride すべて
  9
 10 オーダー拒否、許可
 11 全てを否定
 12
 13 AuthName「制限付き開発サーバー」
 14 AuthUserFile /var/www/html/.htpasswd
 15 AuthType 基本
 16 有効なユーザーが必要
 17
 18 192.168.1 から許可します。
 19
 20 いずれかを満たす
 21 </ディレクトリ>
 22
 23 <場所/open-path>
 24 オーダー許可、拒否
 25 すべてから許可
 26 誰もいないことを拒否
 27 </場所>
 28
 29 ログレベルのデバッグ
 30 VirtualDocumentRoot /var/www/html/%1/
 31 </仮想ホスト>

すべてが正常に機能しています。すべてのサブドメインは、/var/www/html 内に独自のフォルダーを取得します。192.168.1.x からの (内部ドメイン マップを介した) 要求は、パスワード プロンプトなしでサイトを表示できます。(external-domain.co.uk 経由の) 外部 IP からの要求はすべて、パスワードの入力を求められます。

私が抱えている問題は、最後の「場所」ルールを機能させることです。

「/ open-path」URLのパスワード保護を使用したり、無効にしたりすることはありません(.htaccessまたはvhostレベルであっても)。

実際には、このサーバー上の各サイトは Drupal を実行しており、.htaccess で URL Rewrite を使用し、ファイル以外のすべてを "?q="... に マップします http://domain/index.php?q=foo/bar

しかし、それがこれに影響を与えるべきだとは思いませんか?

私が指摘する理由は、サードパーティ API がサイトを「ping」するために「/open-path/callback」を開く必要があるためです。ライブにプッシュする前に、このコールバックが機能していることをテストする必要がありますが、パスワード保護からサイト全体を公開したくありません。

Location を "/index.php?q=open-path" に設定しようとしましたが、うまくいきません。

どんな提案でも大歓迎です!

4

1 に答える 1

3

これは Apache ドキュメントからのものです: http://httpd.apache.org/docs/2.2/mod/core.html#require

<Directory /path/to/protected/unprotected>
# All access controls and authentication are disabled
# in this directory
Satisfy Any
Allow from all
</Directory>

これは場所でも機能します。

于 2011-07-12T19:24:12.510 に答える