我正在尝试制作一个页面,允许我访问www.example.com/create?453lk6m4y
并通过页面createUser.php?id=453lk6m4y
创建链接到该ID的帐户。我遇到的问题是,如果我将其直接传递给 PHP 脚本,GET 请求会将键设置为 453lk6m4y
,将值设置为空。
换句话说,如果我访问该网址,该页面将理解GET请求
Array
(
[453lk6m4y] =>
)
我想通过 Nginx 重写重写 URL。到目前为止,我有这个:
rewrite ^/create(?.*)?$ /createUser.php?id=$1 last; #user creation page
但是,此重写会更改 get 请求以反映以下内容:
Array
(
[id] =>
[453lk6m4y] =>
)
重写 url 以使 GET 请求反映的任何方法
Array
(
[id] => 453lk6m4y
)
我实际上不确定www.example.com/create?453lk6m4y
是否是一个有效的网址:
-
?
定义为位置和 (get( 参数之间的分隔符 - get 参数通常为
<parameter>=<value>
形式,不同参数之间有一个&
分隔符
也就是说,如果你看一下 http://wiki.nginx.org/HttpCoreModule#Variables 你会看到nginx中可用的所有标准变量:
- 具体来说,
$args
变量将保存整个 get 参数,即?
之后的所有参数 - 您还必须
$arg_PARAMETER
变量来访问各个参数值。(因此,如果您有一个 urlexample.org/createuser.php?id=1234&page=abc
那么您将有一个值为1234
的变量$arg_id
和一个值为abc
的变量$arg_page
(