Я создаю многоязычный веб-сайт в Sitecore 7.5, и я хочу всегда показывать язык в начале URL-адреса, например. mysite.com/en/article1.aspx
.Ссылка на домашнюю страницу с LinkManager и languageEmbedding = "always"
Для этого я установил конфигурацию LinkManager
в соответствии с блоком this с languageEmbedding="always"
. Теперь, при смене языка через Sitecore.Context.SetLanguage()
, URL-адрес правильно изменяется на соответствующий код языка при следующих ссылках, как это происходит ... Пока все хорошо!
Проблема возникает, когда я пытаюсь сделать ссылку на главную элемент, например, через редирект, как например:
var homeItem = Sitecore.Context.Database.GetItem(<GUID to home>);
var url = LinkManager.GetItemUrl(homeItem);
Redirect(url);
Полученный URL является mysite.com/en.aspx
, который показывает страницу с именем Default.aspx
находится в веб-корневой папке. Конечно, я хочу, чтобы вместо этого он направил mysite.com/en/
, что соответствует домашнему элементу на данном языке и работает, если введено вручную.
Мне кажется, что у LinkManager
есть ошибка, поэтому он не может правильно разрешить домашний элемент при встраивании языка в URL-адрес. Или это только я сделал ошибку?
Кто-нибудь знает, как исправить эту проблему? Как мне получить LinkManager
, чтобы добавить конечную косую черту?
UPDATE Вот скриншот моего содержания дерева:
Если вы исправили URL-адрес, как описано в этом сообщении в блоге, вы не должны * получать расширение .aspx на своих ссылках. Звучит для меня, как ваш патч не работает. Если вы посмотрите на свой последний файл web.config, вы можете увидеть ваши исправленные значения? – timothyclifford
Можете ли вы подробно рассказать о том, как структурирован ваш контент? – timothyclifford
Вы пробовали настройку addAspxExtension = "false"? –