2010-06-29 6 views
4

Как вы можете настроить 301 переадресацию в Kentico CMS (v5.0)?Как настроить 301 переадресацию в Kentico CMS

Я хочу предоставить клиенту простой способ (в идеале через интерфейс CMS Desk) настроить 301 переадресацию на веб-сайт, который недавно был повторно реализован на Kentico. Например, я бы хотел перенаправить «old-page.cfm» на «new-page.aspx» и убедиться, что ответ HTTP на исходный запрос равен 301.

У меня есть подход, который выглядит так, как будто он работает , но, возможно, есть лучший способ. Я сконфигурировал URL-адреса без расширений (для Kentico's documentation) и добавил новый псевдоним документа к документу «новая страница», указав «старую страницу» в качестве пути URL и добавив «.cfm» в список адресов URL-адресов. Используя инструмент Fiddler (HTTP Debugging Proxy), похоже, что я хочу, чтобы это произошло: запрос на «old-page.cfm» возвращает 301, перенаправляет на документ «новая страница» и возвращает 200 ответ.

Кто-нибудь знает, подходит ли это для 301 переадресации в Kentico? Есть ли способ лучше? Существуют ли какие-либо известные недостатки использования URL-адресов, не поддерживающих расширение, в Kentico?

ответ

2

Я думаю, что это хороший подход, и я не знаю другого способа выполнить 301 переадресацию, не делая того, что делаю. Я использовал URL-адреса без расширения в Kentico некоторое время, и они работают хорошо.

+0

Да, это пока работает хорошо. Прежде чем приступить к этому подходу, у меня было прототипированное решение, которое повлекло за собой перехват запроса в событии Application_BeginRequest и поиск соответствующего устаревшего URL-адреса, хранящегося в пользовательской таблице. Это также хорошо зарекомендовало себя и не требует ссылок на неограниченное количество URL-адресов. – jmcdowell

2

Согласно Blog Post (Comment) by the CTO of Kentico:

... есть несколько новых (до сих пор экспериментальные) настройки в 4.0 (4.0) вы можете поместить в файл web.config.

Они:

3) <add key="CMSUsePermanentRedirect" value="true" />, который позволяет 301 перенаправления в тех местах, где это имеет смысл, а не 302 перенаправление.

2) <add key="CMSRedirectAliasesToMainURL" value="true" /> который вы можете использовать для лучшего SEO. Он 301 на каждый URL, который не является основным для документа (NodeAliasPath). Это вам пока поможет.

3) <add key="CMSRedirectInvalidCasePages" value="true" />, который идет еще дальше и позволяет ограничивать страницы только конкретным вариантом случая. Когда случай неправильный, он получает 301 в правильном случае.

Я не уверен, что такое состояние с 5.X, но я предполагаю, что они либо работают, либо теперь настройки конфигурации находятся где-то в Менеджере сайтов.

+0

Эти параметры теперь доступны для редактирования в стандартных настройках Site Manager для Kentico 5.0 и новее. –

1

Я реализовал его в IIS6 для нескольких клиентов, перемещающихся из системы php в kentico с использованием перезаписи ISAPI от Helicon (http://www.helicontech.com/isapi_rewrite/). Он использует файл .htaccess в корне сайта. Вы можете сделать эту редактируемую страницу из kentico, если вам нужно, или обновить ее из настраиваемого поля на странице, если вам нужно, но мы только что получили список карт от наших клиентов.

Я считаю, что вы можете сделать то же самое изначально в IIS7 с помощью одного из дополнительных плагинов.

2

Я бы установил модуль IIS Rewriter http://www.iis.net/downloads/microsoft/url-rewrite Затем я бы добавил правило (постоянное = 301) для всех страниц .cfm, которые будут обрабатываться пользовательским обработчиком.

Для клиента я должен создать пользовательскую таблицу с двумя столбцами, которая связывает отношения между старыми ссылками и новыми ссылками.

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

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