我希望有多语言(php / html)网站...但我在nginx / rewrite中非常弱 在http地址中有3个变量(ln -language,page,step)
我写https://testpage.org.pl/esp/home时出现问题 " / esp /" - 不被认为是$ ln变量......
我该如何解决?
这是我的nginx重写:
rewrite ^/([a-zA-Z0-9]+)$ /index.php?page=$1 last;
rewrite ^/([a-zA-Z0-9]+)/step-([1-3])$ /index.php?page=$1&step=$2 last;
rewrite "^/([a-z]{2})/$" /index.php?ln=$1 last;
rewrite "^/([a-z]{2})/([a-zA-Z0-9]+)$" /index.php?ln=$1&page=$2 last;
rewrite "^/([a-z]{2})/([a-zA-Z0-9]+)/step-([1-3])$" /index.php?ln=$1&page=$2&step=$3 last;
答案 0 :(得分:1)
如果您的语言变量总是有2个或3个字符,您只需将其中的语言变量更改为:
rewrite "^/([a-z]{2,3})/$" /index.php?ln=$1 last;
rewrite "^/([a-z]{2,3})/([a-zA-Z0-9]+)$" /index.php?ln=$1&page=$2 last;
rewrite "^/([a-z]{2,3})/([a-zA-Z0-9]+)/step-([1-3])$" /index.php?ln=$1&page=$2&step=$3 last;
这将确保它只匹配长度在2到3之间的语言,并且在您的情况下可能会正常工作。