Во-первых, моя терминология, вероятно, неверна, но когда я слышу «прямой доступ», я думаю, что кто-то имеет в виду, что кто-то имеет права на чтение файла по URL-адресу. Правильно ли я понимаю, что означает «прямой доступ»?
Я использую htaccess, чтобы предотвратить прямой доступ к следующему каталогу (каталог http DocumentRoot /var/www/public_html
)
<Directory /var/www/public_html/indirect_access/>
AuthType Basic
AuthName "Restricted Access"
AuthUserFile /passwords/me
Require user me
</Directory>
У меня есть два файла
/var/www/public_html/indirect_access/indirect.php
<?php echo 'hi'; ?>
/var/www/public_html/direct.php
<?php include('indirect_access/indirect.php'); ?>
Когда кто-то переходит на www.mysite.com/direct.php, браузер печатает «привет». Когда кто-то заходит на www.mysite.com/indirect_access/indirect.php, ему предлагается ввести имя пользователя и пароль.
Однако, когда я изменяю содержимое /var/www/public_html/direct.php чтобы включить запрос AJAX, например
$.ajax({
url: "indirect_access/indirect.php",
type: "GET",
dataType: 'html',
success: function(data){
$("body").prepend(data);
},
});
а затем я пытаюсь получить доступ к www.mysite.com/direct.php, мне предлагается ввести имя пользователя / пароль.
Можно ли запретить htpasswd запрашивать аутентификацию для косвенного доступа к файлу через ajax?