如何防止 htaccess 通过 ajax 间接访问文件时提示身份验证?

如何防止 htaccess 通过 ajax 间接访问文件时提示身份验证?

首先,我的术语可能不对,但当我听到“直接访问”时,我认为有人的意思是任何人都有从 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 时,浏览器会打印“hi”。当有人访问 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 间接访问文件的身份验证?

相关内容