Я создаю сайт с несколькими языками. Я хочу, чтобы это было на английском языке, когда не задан языковой параметр, и на другом языке, когда задан языковой параметр.CakePHP 3.x дополнительная маршрутизация языка
Мой маршрутизации выглядит следующим образом:
$routes->connect('/:language/:controller/:action/*');
Вопрос заключается в следующем:
Когда я посещаю www.mydomain.com/users/login
он работает отлично.
Когда я нахожусь www.mydomain.com/fr/users/login
, он отлично работает (на французском).
Но когда я посещаю www.mydomain.com/users/login/1
где 1
обычай с именем параметра я хочу разобрать, он, естественно, думает, что users
язык и login
мой контроллер и 1
мое действие.
Я знаю, что если я заставляю там всегда быть параметром языка, это уже не будет проблемой, но я не хочу, чтобы английская версия была в www.mydomain.com/en/
. Я хочу, чтобы это было www.mydomain.com
.
Возможно ли это? Есть ли способ игнорировать параметр языка, если он не fr
или es
и т. Д.?
Будет ли это использовать обычный '/: controller /: action/*' маршрутизацию, если ': language' не установлен в' fr' или 'es'? @ADmad – Cellydy
@Cellydy, если языковой префикс отсутствует, определение маршрута в этом ответе просто не будет соответствовать. Если вам нужны стандартные резервные маршруты [вам нужно их добавить] (http://book.cakephp.org/3.0/en/development/routing.html#routes-configuration), иначе url '/ controller/action/blah' будет быть 404. – AD7six
@ADmad Спасибо за помощь! – Cellydy