$_SERVER['PHP_SELF'] 和 $_SERVER['SCRIPT_NAME'] location匹配重写后会变成重写后的文件名称
例如
http://www.baidu.com/a/b/c?a=1
rewrite ^(.*)$ /public/index.php?_url=$1
则PHP_SELF 和SCRIPT_NAME 都是public/index.php
REQUEST_URL=a/b/c?a=1
$_SERVER['REQUST_URL'] 在nginx 第一步接受到请求 头就已经固定
$_GET 也会在rewrite后面变化 变成_url= & a=1
换句话说在nginx的 请求内容处理阶段 $_GET 和 PHP_SELF SCRIPT_NAME在 内容处理阶段(接受请求内容) 会变化
目前测试结果是这样 (至于网上说的PHP_SELF 和SCRIPT_NAME 区别未测试)