как передать более 9 параметров в nginx

это правило

location / {
    rewrite ^/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)$ /index.php?param1=$1&param2=$2&param3=$3&param4=$4&param5=$5&param6=$6&param7=$7&param8=$8&param9=$9&param10=$10 last;
}

на $ 10 оно работает как $ 1 "0" так что дает мне любое значение $ 1 с 0 в конце

как мне передать более 9 параметров rs правильно или, если не pssobile, передать более 9, чтобы сделать что-то вроде

location / {
    rewrite ^/(.+) /index.php?param1=$1
    location ^/.+ {
        rewrite ^/.+/(.+) /index.php?param2=$1
            to $3 -> $4 -> $5 -> $6 -> $7 -> $8 -> $9 -> $10
    }
}
0
задан 7 March 2019 в 06:55
1 ответ

Используйте следующее:

location / {
rewrite ^/(?.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(?<param10>.+)$ /index.php?param1=$1&param2=$2&param3=$3&param4=$4&param5=$5&param6=$6&param7=$7&param8=$8&param9=$9&param10=$param10 last;

}

? < Запись argname> указывает nginx записывать регулярное выражение в переменную $ argname . Для единообразия вы можете использовать одинаковые обозначения для всех переменных. Я заменил только аргумент 10, чтобы пример был короче.

2
ответ дан 4 December 2019 в 13:21

Теги

Похожие вопросы