1
许多PHP框架,建议把它添加到nginx的:
location/{
try_files $uri /index.php$is_args$args;
}
对所有HTTP请求执行index.php
。
为什么我需要$is_args$args
?我认为$args
已经在HTTP GET请求中。那么为什么nginx需要将它们以这种方式传递给index.php?
许多PHP框架,建议把它添加到nginx的:
location/{
try_files $uri /index.php$is_args$args;
}
对所有HTTP请求执行index.php
。
为什么我需要$is_args$args
?我认为$args
已经在HTTP GET请求中。那么为什么nginx需要将它们以这种方式传递给index.php?
这取决于是谁写的index.php
。大量参数从nginx
发送到PHP,并且通常包括QUERY_STRING和REQUEST_URI。
如果程序员访问$_SERVER["QUERY_STRING"]
他们会收到任何附加在try_files
声明中末尾的/index.php
。
如果程序员访问$_SERVER["REQUEST_URI"]
他们将与原有的查询字符串一起接收原始的URI,以及任何附加的/index.php
在try_files
声明到底会不会影响。
我主持的两个应用程序(WordPress和MediaWiki)显然使用后者,因为我不会将$is_args$args
附加到/index.php
,它一切正常。
但是另一个应用程序可能会有不同的表现。