限制对文件的直接访问也拒绝ajax请求

时间:2016-02-05 02:24:07

标签: php ajax .htaccess

我想拒绝直接访问所有php文件。所以我在.htaccess文件中使用下面的命令。它可以正常工作,禁用直接访问,但我可以在我的index.php中包含任何php文件。但是当来自index.php的所有ajax请求也被阻止时,问题就出现了。如何解锁我的ajax请求?

这是禁止的(正如预期的那样):

  

http://www.example.com/other.php

这是通过(如预期的那样):

  

http://www.example.com/index.php

这在index.php中已经过了(正如预期的那样):

include(other.php)

但这也会在index.php中返回Forbidden:

$.ajax({
    method: "POST",
    url: "other.php",
    dataType: "json",
    data: JSON.stringify({ field: field})
})
.done(function( msg ) {
    console.log(msg);
})
.fail(function( jqXHR, textStatus, errorThrown) {
    console.log(errorThrown);
});

的.htaccess

<FilesMatch ".*\.php$">
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
    Allow from ::1
</FilesMatch>

<Files index.php>
    Order Allow,Deny
    Allow from all
</Files>

0 个答案:

没有答案