如何在Nginx中实现类似固定链接的URL参数传递给PHP文件?
错误原因
- 你之前写的配置中
/api.php指向站点根目录的api.php,而你的脚本实际存放在/apps/scripts/api/子目录下,路径匹配错误 - 你误用了
$args变量:这个变量代表URL中?后面的查询字符串,不是你需要的URI路径片段,参数传递逻辑完全不符合需求
可行配置方案
把下面的配置块放到你原有location /(WordPress配置块)的前面,保证Nginx优先匹配该路径规则:
location ^~ /apps/scripts/api/ { autoindex off; # 匹配非现有文件/非现有目录的请求,传递路径参数到api.php if (!-e $request_filename) { rewrite ^/apps/scripts/api/(.*)$ /apps/scripts/api/api.php?x=$1 last; } # 匹配现有文件/目录请求,直接传递到api.php rewrite ^/apps/scripts/api/(.*)$ /apps/scripts/api/api.php last; }
生效操作
配置修改完成后,先执行nginx -t检查语法是否正确,确认返回test is successful后,执行nginx -s reload重载配置即可生效。
内容的提问来源于stack exchange,提问作者Pushkraj Jori
相关产品推荐
相关产品推荐

