如何设置nginx friendly url with lang 后缀?

How to set nginx friendly url with lang suffix?

我希望拥有多语言 (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= last;
rewrite ^/([a-zA-Z0-9]+)/step-([1-3])$ /index.php?page=&step= last;
rewrite "^/([a-z]{2})/$" /index.php?ln= last;
rewrite "^/([a-z]{2})/([a-zA-Z0-9]+)$" /index.php?ln=&page= last;
rewrite "^/([a-z]{2})/([a-zA-Z0-9]+)/step-([1-3])$" /index.php?ln=&page=&step= last;

如果您的语言变量总是有 2 或 3 个字符,您只需将包含语言变量的重写更改为:

rewrite "^/([a-z]{2,3})/$" /index.php?ln= last;
rewrite "^/([a-z]{2,3})/([a-zA-Z0-9]+)$" /index.php?ln=&page= last;
rewrite "^/([a-z]{2,3})/([a-zA-Z0-9]+)/step-([1-3])$" /index.php?ln=&page=&step= last;

这将确保它只匹配长度在 2 到 3 之间的语言,并且可能在您的情况下工作正常。