请求协助配置Nginx URL转发规则(含特定匹配需求)
最终Nginx配置实现
# 匹配单级的/pdf/xxx或/pdf/xxx/路径 location ~^/pdf/([^/]+)/?$ { # 把捕获的xxx作为查询字符串转发到pdf.php rewrite ^/pdf/([^/]+)/?$ /pdf.php?$1 last; } # 禁止直接访问pdf.php location = /pdf.php { deny all; } # 拦截/pdf/xxx/xxx这类多级路径请求 location ~^/pdf/.+/ { deny all; }
各规则对应说明
- 规则1&规则4:第一个location的正则
^/pdf/([^/]+)/?$中,[^/]+确保xxx部分不含斜杠(仅允许单级路径),/?匹配末尾可选的斜杠,刚好命中/pdf/xxx和/pdf/xxx/两种格式,同时自动排除多级路径请求。 - 规则2:通过
location = /pdf.php精确匹配直接访问pdf.php的请求,直接返回禁止访问,彻底阻断这类请求。 - 规则3:rewrite指令将捕获到的
xxx(即$1)作为查询字符串拼接到pdf.php后,PHP端可直接通过$_SERVER['QUERY_STRING']读取该内容。
内容的提问来源于stack exchange,提问作者Mr Heelis
相关产品推荐
相关产品推荐

