<Sitecore> languageEmbedding = всегда, но язык, удаленный вручную из URL, все еще работает - PullRequest
0 голосов
/ 22 октября 2018

Я настроил «languageEmbedding = всегда», он работает хорошо, однако, когда язык был удален вручную из панели URL браузера, он не будет перенаправлять или добавлять язык обратно, вот пример:

http://app.local/de/index -> хорошо

http://app.local/index -> еще доступно, но не соответствует требованию, мы надеемся, что оно должно обновиться и изменить URL-адрес на http://app.local/de/index или текущийlanguage.

URL ДОЛЖЕН ВСЕГДА с языком.

Вот моя текущая конфигурация менеджера ссылок

<add name="sitecore" type="Sitecore.Links.LinkProvider, Sitecore.Kernel" addAspxExtension="false" alwaysIncludeServerUrl="false" encodeNames="true" languageEmbedding="always" languageLocation="filePath" lowercaseUrls="true" shortenUrls="true" useDisplayName="true"/>

Как это сделать?

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Как сказал Гатогордо, настройка languageEmbedding используется LinkManager при отображении URL-адресов элементов.Сайт всегда будет использовать язык по умолчанию без языкового кода в URL.Мы закончили с перенаправлениями в балансировщике нагрузки, потому что у нас уже было некоторое имя входа перенаправления для начала.

0 голосов
/ 31 октября 2018

Я выполнил это требование с помощью следующего жесткого кода

    var mustHave = "/" + Sitecore.Context.Language;
    var isWithLanguage = HttpContext.Current.Request.Url.AbsoluteUri.Contains(mustHave);
    if (!isWithLanguage)
    {
        var urltmp = Helper.GetUrl(Sitecore.Context.Item.ID.ToString(), Sitecore.Context.Language.ToString());
        Response.Redirect(urltmp);

    }

Этот код условия я ввел на странице макета, поэтому он будет проверяться при каждой загрузке страницы.

0 голосов
/ 22 октября 2018

Внедрение языка и ваш поставщик ссылок должны создавать ссылки, а не разрешать их.

Если вы хотите проверить язык в URL и перенаправить его, когда его нет, вы можете добавить процессорк конвейеру httprequestbegin и вставьте туда свою логику.http://insitecore.tumblr.com/post/37734162227/sitecore-httprequestbegin-pipeline-in-detail

...