2

.php引数が送信される前にファイル名の最後に指定せずにurl引数を解析するようにnginxを何らかの方法で構成できるかどうか知りたいと思いました。

たとえば、送信された引数に基づいて、アカウントのどの側面をロードするかを処理するアカウントモジュールがあるとします。引数がの場合?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 に答える