2016-09-29 5 views
0

Я хочу, чтобы Multilanguage (PHP/HTML) сайта ... но я очень слаб в Nginx/переписать В адрес HTTP есть 3 переменные (пер -языка, страница, шаг)Как установить nginx дружественный url с lang суффикс?

Eсть проблема, когда я пишу 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

Не уверен, что означает язык 'esp', но вышеприведенные инструкции перезаписи предназначены для кодов языков ISO 639-1, которые содержат базу из двух символов. Это те же коды, которые используются в HTTP-запросе и HTML-заголовке. –

+0

его hmtl/php website – TomLi

+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 и, вероятно, будет работать нормально в вашем случае.