在 Nginx 中获取 URL 问号后的所有信息

  • 本文关键字:信息 Nginx 获取 URL php nginx
  • 更新时间 :
  • 英文 :


我正在尝试制作一个页面,允许我访问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变量来访问各个参数值。(因此,如果您有一个 url example.org/createuser.php?id=1234&page=abc那么您将有一个值为 1234 的变量$arg_id和一个值为 abc 的变量$arg_page(

最新更新