我正在尝试制作一个页面,允许我访问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] =>
)
任何重写网址的方法,以便GET请求反映
Array
(
[id] => 453lk6m4y
)
答案 0 :(得分:0)
首先,我实际上不确定www.example.com/create?453lk6m4y
是否是有效的网址:
?
被定义为location和(get)参数之间的分隔符<parameter>=<value>
形式,在不同参数之间使用&
分隔符如果你看http://wiki.nginx.org/HttpCoreModule#Variables,你会看到nginx中可用的所有标准变量:
$args
- 变量将保存整个get参数,即?
$arg_PARAMETER
个变量,用于访问各个参数值。 (因此,如果您有网址example.org/createuser.php?id=1234&page=abc
,那么您的变量$arg_id
的值为1234
,变量$arg_page
的值为abc
)