У меня есть URL www.foo.com
, который имеет два языка EN
и CN
. У меня есть страницы, такие как about.php
, product.php
и т.д.Перепишите URL-адрес для nginx с опцией языка
Я хочу, чтобы URL www.foo.com/about.php?lang=cn
быть написана как www.foo.com/cn/about
и таким же образом, www.foo.com/en/product
и т.д.
Я использую Nginx для обслуживания этого сайта PHP.
Я могу скрыть .php файл как
location/{
try_files $uri $uri/ $uri.php?$query_string;
}
Я пытался писать что-то вроде этого
location/{
try_files $uri $uri/$query_string/ $uri.php?$query_string;
}
Но как-то не похоже на работу.
ли вы попробовать некоторые вещи, как 'местоположение/{ если ($ arg_lang) { переписывание ^/$ arg_lang/$ URI постоянной; } } '? – slowjack2k
Я не пробовал. Можете ли вы уточнить? Я имею в виду, как я могу присвоить значение lang = "cn" в $ arg_lang и т. Д. – Kasino
Насколько я знаю, nginx предоставляет переменную $ arg_ для каждой части вашей строки запроса. Поэтому $ arg_lang должен быть доступен из коробки. Поэтому, когда lang задается в строке запроса, переписывание должно выполняться. Но в данный момент я не могу это проверить. –
slowjack2k