#url-rewriting #sitecore #sitecore6
#перезапись URL-адреса #sitecore #sitecore6
Вопрос:
В настоящее время я сталкиваюсь со следующей проблемой:
Веб-сайт, который я должен создать для компании, имеет разные местоположения. Но содержимое нескольких страниц для всех местоположений одинаково. Теперь я создал глобальную папку с элементами для всех местоположений. Но теперь я сталкиваюсь со следующей проблемой: при доступе к глобальным элементам с веб-сайта определенного местоположения я получаю глобальный URL. Но я хочу, чтобы конкретный URL-адрес местоположения оставался той же структурой, например:
- Теперь это www.url.com/global/subfolder/itemname
- И то, что я хочу, это www.url.com/location1/subfolder/itemname
Есть ли у кого-нибудь какие-либо решения / предложения для этой проблемы?
У кого-нибудь также есть решение для создания меню для вставки этих глобальных элементов, а также для вставки элементов, специфичных для местоположения?
Еще немного информации о моей структуре содержимого Sitecore
- Глобальный: содержит глобальные элементы для всех местоположений
- Корпоративный: корпоративный веб-сайт компании
- Location1: веб-сайт location1
- Location2: веб-сайт location2
Комментарии:
1. Когда вы говорите «разные местоположения», вы имеете в виду разные домены? или, может быть, разные вложенные папки? Можете ли вы привести примеры.
Ответ №1:
Адам Вебер был прав, клонирование — ваше лучшее решение:
- Создайте свой глобальный раздел со всеми необходимыми дочерними элементами
- Для каждого из ваших локальных разделов клонируйте глобальный раздел и разместите его там, где вы хотите, чтобы он отображался в вашем локальном меню
Ответ №2:
Если я вас правильно понимаю, это то, что я бы сделал. Возможно, это не самое приятное решение. Но это сработает.
У вас есть элементы «данных» в /global/subfolder/itemname
затем просто создайте несколько шаблонов, которые являются «фиктивными» страницами, которые содержат только ссылку на глобальный элемент (и, возможно, несколько полей, которые могут отличаться (возможно, контактный адрес электронной почты для конкретного местоположения).
Затем вы создаете подпроцесс, который в основном jsut получает элемент, на который ссылается, и использует его вместо Sitecore.Context.Item.
Затем создайте экземпляр «фиктивного» шаблона в /location1/subfolder/itemname и ссылайтесь на него в /global/subfolder/itemname
Таким образом, ваши URL-адреса будут правильными, и данные будут одинаковыми.
Другим и, вероятно, более разумным решением (если вы включили прокси-серверы) является создание прокси-сервера, который принимает /global/subfolder/itemname в качестве источника и указывает на /location1/subfolder/ в качестве цели (или вы можете взять /global/subfolder и проверить «включить дочерние элементы».
Вот руководство по использованию прокси в версии 5.3: http://sdn.sitecore.net/Articles/Administration/Using Proxy Items in 5 ,-d-,3.aspx
Комментарии:
1. Я бы выбрал прокси-элементы. В версии 5.x было довольно много проблем с прокси, но в версии 6 они работают намного лучше
2. Да, это, вероятно, простое решение и не требует никакого кодирования, только несколько изменений в web.config.
3. Прокси могут быть проблемой и плохо масштабируются. Я бы рекомендовал вместо этого изучить клоны элементов, если вы используете 6.4 или более позднюю версию.