2

我很想知道是否有可能以某种方式配置 nginx,以便它解析 url 参数,而无需.php在发送参数之前在文件名的末尾指定。

例如,假设我有一个帐户模块,它根据发送的参数处理要加载帐户的哪个方面。如果参数是?sk='login',它将加载登录模块。如果是?sk='register',它将加载注册模块 - 依此类推。

问题是,当我键入时,当我尝试打印数组中的值时http://host/account?sk='login',我什么也得不到。$_GET问题是干净的 URL确实加载了应该管理参数的文件,除非我在文件名末尾指定$_GET,否则它不会实际处理。 $_GET.php

我猜想有一个 nginx 或 php-fpm 配置以某种方式允许这样做。

这可能吗?

4

1 回答 1

1

我想到了:

使用 nginx 的想法是定义一个位置,指定该位置的根,然后使用try_files参数指定$uri变量和.php要执行的文件。

例如:

location /somelocation {
    root /path/to/somelocation/on/server;
    try_files $uri /somelocation/somefile.php?key=$args;
}

而不是打字http://host/somelocation?key='someargument',你会指定/somelocation?someargument

从那里开始,当你调用$_GET[ 'key' ]你的 php 时,它会输出someargument一个key. 密钥可以是您指定的任何内容。

于 2012-04-07T20:01:52.050 回答