nginx 配置问题 指定的目录限制浏览器访问

server {
    listen 80;
    server_name 域名已隐藏;
    index index.html index.htm index.php;
    root /home/wwwroot;
    
    # 这一段有什么问题吗 怎么不起作用
    location /app/ {
        if ($http_user_agent ~* "MicroMessenger") {
            set $notweixin 1;
        }
        if ($notweixin) {
            return 404;
        }
    }

    location ~ .*\.(php|php5)?$ {
        fastcgi_pass unix:/dev/shm/php-cgi.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
    expires 30d;
    }
    location ~ .*\.(js|css)?$ {
    expires 7d;
    }
}
阅读 6.1k
3 个回答

直接在 if ($http_user_agent) 里 return 404 不行吗?

正则匹配优先级高于路径匹配,也就是说如果你url路径后缀是php的话,是匹配不到的

location ^~ /app/

这样呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题