以下は私の 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" に設定しようとしましたが、うまくいきません。
どんな提案でも大歓迎です!