V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ioioioioioioi
V2EX  ›  问与答

Nginx 如何禁止对 index.php 的直接访问

  •  
  •   ioioioioioioi · 2016-12-19 15:41:29 +08:00 · 2179 次点击
    这是一个创建于 2687 天前的主题,其中的信息可能已经有所发展或是发生改变。
    location / {
        try_files   $uri /index.php?$query_string;
    }
    
    7 条回复    2016-12-19 21:16:55 +08:00
    lslqtz
        1
    lslqtz  
       2016-12-19 15:44:43 +08:00   ❤️ 1
    不清楚能不能用。。
    location /index.php {
    return 403;
    }
    ioioioioioioi
        2
    ioioioioioioi  
    OP
       2016-12-19 15:49:19 +08:00   ❤️ 1
    @lslqtz 不行。
    lslqtz
        3
    lslqtz  
       2016-12-19 15:49:33 +08:00
    好吧。。不行
    我查查
    lslqtz
        4
    lslqtz  
       2016-12-19 16:06:50 +08:00
    @ioioioioioioi 没查到,我觉得可以在 php 做限制。。
    设置 index 和 try_files 后,我得到的$uri 变量直接是 index.php 了。。
    lslqtz
        5
    lslqtz  
       2016-12-19 16:11:27 +08:00
    <?php if ($_SERVER['REQUEST_URI'] == '/index.php') { header('HTTP/1.1 403 Forbidden'); die(); } ?>
    我在 php 用这句可以实现,但是 nginx 没搞懂,如果有人知道怎么解决也顺便艾特我一下 :D
    privil
        6
    privil  
       2016-12-19 16:18:26 +08:00
    location =/index.php {
    return 403;
    }
    查了下,有优先级的。
    lslqtz
        7
    lslqtz  
       2016-12-19 21:16:55 +08:00
    @privil 我当时试着使用 location = "/index.php"
    但是无效,因为传过来的参数似乎已经被改写了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3191 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:39 · PVG 20:39 · LAX 05:39 · JFK 08:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.