2010-01-12 2 views
2

Добрый вечер все.Перенаправление интернационализации шва

Есть ли стандартный способ перенаправления/перезаписи определенного URL-адреса на другой?

Представьте пользователю доступ следующий вид: http://www.something.com/us/download.xhtml?id=2

Я хочу, чтобы установить локаль с предыдущим видом и перенаправлении http://www.something.com/download.xhtml?id=2

<page view-id="/us/download.xhtml*" action="<action to set the locale>"> <navigation> <redirect view-id="#{facesContext.viewRoot.viewId}" /> </navigation> </page>

Ну, в принципе, я хочу установить локаль (пример: us), передается на viewId /us/download.xhtml и перенаправляется на viewId без ссылки на локаль.

Благодаря

+0

Если вы получаете вашу цель, поделитесь с нами –

ответ

1

Используйте фильтр прослушивает /*, который извлекает локаль из URL и перенаправляет запрос на новый URL без префикса локали. Вы действительно не должны перенаправлять URL-адрес с локалью, который будет потерян, и это очень плохо для SEO, потому что тогда вы предоставите несколько содержимого за одним и тем же URL-адресом GET, в то время как GET должен быть идемпотентным. Это также сделало бы локализованную страницу незарегистрированной. Просто вперед запрос.

1

Вы должны рассмотреть возможность использования PrettyFaces URL-rewriting, они имеют <rewrite match="oldurl" substitute="newurl" /> функцию, которая позволит вам сделать это, в дополнение к отображению довольно URLs, таких как /login заменить стандартные сайты, например /faces/login.jsf.

<url-mapping id="store"> <pattern value="/store/" /> <view-id>/faces/shop/store.jsf</view-id> </url-mapping>

Docs для функции перезаписи: Reference Guide

Смежные вопросы