Как перенаправить URL-адрес с префиксом языка на тот же URL-адрес без префикса (язык по умолчанию)
Я установил модуль i18n, поэтому доступны два языка - японский и английский. Я установил японский язык в качестве языка по умолчанию, а также "согласование языка" в "только префикс пути". Таким образом, все URL-адреса без языкового префикса показывают страницы на японском и английском языках с префиксом "en".
Что я хочу сделать, так это перенаправить часть URL-адреса с префиксом на тот же URL-адрес без префикса, так как мне нужно сделать некоторые страницы доступными только на японском языке. Для например, когда пользователь пытается просмотреть my-site.com/en/cart
, пользователь автоматически перенаправляется на my-site.com/cart
, так как я хочу сделать my-site.com/en/cart
недоступным.
Я пробовал перенаправление пути , но перенаправление не работает, хотя я установил два случая, как показано ниже
" Язык" на "Все языки", "От"до"my-site.com/en/cart "и "К"к"my-site.com/cart ".
" Язык "на "Английский", "От"до"my-site.com/en/cart "и "К"к"my-site.com/cart ".
2 answers
Приведенный ниже ответ требует, чтобы по крайней мере часть вашего веб-сайта использовала Менеджер страниц + панели. На мой взгляд, они должны в любом случае, но другие не согласятся. Оба этих модуля являются инструментами , в отличие от решений, поэтому этот ответ потребует от вас изучения и понимания этих двух модулей. Ссылка на отличный видеоурок. На момент написания этой статьи для этого требуется версия -dev для Ctools.
На момент написания статьи этот патч Ctools для работы необходимо применить следующие инструкции.
- Убедитесь, что страница, которую вы хотите перенаправить с , управляется менеджером страниц. На этой странице будет 2 варианта.
- Добавьте вариант "HTTP-ответа" с 301 ответом в корзину. Более подробно об этом шаге в другом вопросе . Важно, чтобы этот вариант был самым верхним . Вы можете изменить их порядок впоследствии, если потребуется.
- В варианте HTTP перейдите на вкладку "Контекст" на слева добавьте контекст "Язык", выбрав "Текущий язык".
- Перейдите к "Правилу выбора" и добавьте "Пользователь:Язык" == "Английский".
- Добавьте второй вариант, на этот раз вариант панелей.
- Во втором варианте добавьте весь контент, который вы хотите разместить на японской странице.
В .htaccess добавьте директиву
RewriteRule ^en/(.*)$ http://my-site.com/$1 [L,R=301]
RewriteRule ^cn$ http://my-site.com [L,R=301]