/ Ako nastaviť nginx priateľskú adresu URL s príponou lang? - php, html, nginx, prepisovanie adresy URL, friendly-url

Ako nastaviť nginx friendly url s lang príponou? - php, html, nginx, prepisovanie adresy URL, friendly-url

Chcem mať viacjazyčné (php / html) stránky ... ale ja som veľmi slabý v nginx / prepis Na http adrese sú 3 premenné (ln - jazyk, stránka, krok)

Pri písaní je problém https://testpage.org.pl/esp/home "/ esp /" - nie je rozpoznaná ako premenná $ ln ...

ako to môžem opraviť?

tu je môj nginx prepísať:

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;

odpovede:

1 pre odpoveď č. 1

Ak vaša premenná jazyka vždy obsahuje 2 alebo 3 znaky, môžete jednoducho zmeniť svoje prepisy s premennou jazyka v ňom na:

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;

Týmto sa ubezpečí, že bude zodpovedať len jazyku s dĺžkou medzi 2 a 3 a pravdepodobne bude vo vašom prípade fungovať.