【问题标题】:deny all traffic except a php file .htaccess拒绝除 php 文件 .htaccess 之外的所有流量
【发布时间】:2020-01-13 20:31:48
【问题描述】:

我有一个 index.php 文件,它需要访问文件夹“login”,才能访问文件“messages.json”。文件夹“登录”受 .htaccess 保护,拒绝一切。 index.php 需要访问 login/messages.json,但被拒绝访问(403)。

我需要知道如何设置我的 .htaccess 以仅允许我的 index.php 访问 login/messages.json,但拒绝其他所有内容的访问。


Linux freeweb5.byetcluster.com 2.6.32-896.16.1.lve1.4.54.el6.x86_64 #1 SMP Wed May 2 07:43:19 EDT 2018 x86_64

Apache 2.0 处理程序

PHP 版本 7.3.6

我尝试使用该文件设置有效用户,但它不起作用。我会不断收到 500 错误,但我无法找出问题所在。


我的 .htaccess 文件仅包含以下内容:

deny from all

请求文件的 php 文件使用 JQuery 来执行此操作,这是 ajax 请求:

$.ajax({url: 'login/messages.json', dataType: 'json', ifModified: true, timeout: 2000, success: function(messages, status){function_here}});

【问题讨论】:

    标签: php ajax .htaccess


    【解决方案1】:

    更改您的 .htaccess

    Deny from all
    <FilesMatch messages\.json>
            Allow from all
    </FilesMatch>
    

    您的 php 文件不请求messages.json!客户端的浏览器这样做是因为您使用的是 Ajax。

    您需要允许对 messages.json 的 http 请求并拒绝对所有文件的访问。

    【讨论】:

    • 这个问题是,用户仍然可以查看messages.json 它需要是只有php 文件可以查看messages.json。不是所有人。
    • 如果您使用 Ajax,浏览器(用户)需要访问该文件。不要使用 ajax,使用 file_get_contents 加载文件内容,使用 json_decode 转换对象或数组中的内容
    猜你喜欢
    • 2015-09-13
    • 2011-03-25
    • 2014-01-08
    • 2012-10-26
    • 1970-01-01
    • 2010-11-23
    • 2015-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多