我很想知道是否有可能以某种方式配置nginx,以便在发送参数之前解析url参数而不在文件名末尾指定.php
。
例如,假设我有一个帐户模块,它根据发送的参数处理要加载的帐户的哪个方面。如果参数为?sk='login'
,则会加载登录模块。如果是?sk='register'
,它将加载注册模块 - 依此类推。
问题是,当我输入http://host/account?sk='login'
时,当我尝试打印数组中的值时,我无法通过$_GET
获得任何内容。问题是干净的URL 加载了应该管理$_GET
参数的文件,除非它实际上不会处理 $_GET
除非我在文件名的末尾指定.php
。
我猜是有一个nginx或php-fpm配置以某种方式允许这个。
这可能吗?
答案 0 :(得分:1)
我明白了:
使用nginx的想法是定义一个位置,指定该位置的根,然后在指定try_files
变量和要执行的$uri
文件时执行.php
, em> with 参数。
例如:
location /somelocation {
root /path/to/somelocation/on/server;
try_files $uri /somelocation/somefile.php?key=$args;
}
您可以指定http://host/somelocation?key='someargument'
/somelocation?someargument
从那里开始,当你在php中调用$_GET[ 'key' ]
时,它会输出someargument
,密钥为key
。密钥可以是您指定的任何内容。