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.2k
3 个回答

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

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

location ^~ /app/

这样呢?

推荐问题