Ниже мой VHost (который немного изменен, чтобы скрыть некоторые URL):
1 NameVirtualHost 192.168.1.49:80
2
3 <VirtualHost 192.168.1.49:80>
4 ServerName internal-name.local
5 ServerAlias *.internal-name.local external-domain.co.uk *.external-domain.co.uk
6
7 <Directory "/var/www/html">
8 AllowOverride All
9
10 Order deny,allow
11 Deny from all
12
13 AuthName "Restricted Development Server"
14 AuthUserFile /var/www/html/.htpasswd
15 AuthType Basic
16 Require valid-user
17
18 Allow From 192.168.1.
19
20 Satisfy Any
21 </Directory>
22
23 <Location /open-path >
24 Order Allow,Deny
25 Allow From All
26 Deny From None
27 </Location>
28
29 LogLevel debug
30 VirtualDocumentRoot /var/www/html/%1/
31 </VirtualHost>
Все работает нормально - каждый поддомен получает свою собственную папку в / var / www / html.Любые запросы от 192.168.1.x (через внутреннюю карту домена) могут просматривать сайт без запроса пароля.Любые запросы от внешних IP-адресов (через external-domain.co.uk) будут запрошены для ввода пароля.
Проблема, с которой я столкнулся, заключается в том, чтобы заставить работать последнее правило "местоположения".
Я ничего не делаю (будь то .htaccess или уровень vhost), используя или отключив защиту паролем для URL "/ open-path".
На самом деле - на каждом сайте на этом сервере работает Drupal, который используетURL Rewrite в .htaccess, который отображает все не-файлы в "? Q =" ... Итак: http://domain/foo/bar отображается на: http://domain/index.php?q=foo/bar
Я не думаю, что это должно повлиять на это,это должно быть?
Причина, по которой я указываю на это, заключается в том, что "/ open-path / callback" должен быть открыт для стороннего API, чтобы "пропинговать" сайт.Мне нужно проверить, работает ли этот обратный вызов, прежде чем начать работу, но я не хочу открывать весь сайт из-за защиты паролем.
Я пытался установить для Location значение "/index.php?q=open-path ", это тоже не сработало.
Любое предложение будет с благодарностью оценено!