在此规则中
location / {
rewrite ^/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)$ /index.php?param1=${1}¶m2=${2}¶m3=${3}¶m4=${4}¶m5=${5}¶m6=${6}¶m7=${7}¶m8=${8}¶m9=${9}¶m10=${10} last;
}我试图传递9个参数的限制,所以我使用了花括号将变量数字括起来,但给出了这个错误消息
nginx: [emerge] unknown "1" variable发布于 2019-03-08 05:11:45
如果在某些表达式中使用某些字符(}或;),则需要用单引号或双引号将整个表达式括起来。
然而,这个问题与以下事实有关:在Nginx中,只有前9个捕获以数字捕获的形式提供。
但是您可以使用命名捕获(即使只针对第10个捕获)。
例如:
rewrite ^/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(?<a>.+)$
/index.php?param1=$1¶m2=$2¶m3=$3¶m4=$4¶m5=$5¶m6=$6¶m7=$7¶m8=$8¶m9=$9¶m10=$a
last;命名捕获(?<a>.+)将捕获放入变量$a中。
https://stackoverflow.com/questions/55034295
复制相似问题