Разрешает ли Kentico строки запроса со знаком вопроса?

Я пытаюсь перенести свой сайт ASPX на Kentico, и в рамках своей задачи я переношу URL-адреса. Мне нужно сохранить структуру URL-адресов, поэтому мне нужно сохранить URL-адреса, которые выглядят следующим образом: "foo.com/bar.aspx?pageid=1".

Я проверил, что свойство URL страницы пытается использовать подстановочные знаки, некоторые шаблоны, такие как /bar/{pageid}- /bar/{?pageid?}- и т. Д., Но Kentico всегда заменяет вопросительные знаки.

Есть ли способ добиться этого через интерфейс администратора?


person 2sugoi2handle    schedule 19.04.2017    source источник


Ответы (3)


Вам не нужно ничего делать, чтобы использовать URL-адрес "foo.com/bar.aspx?pageid=1".

Создайте страницу под корнем и назовите ее bar, чтобы получить страницу @ foo.com/bar.aspx. Kentico и / или .net не заботятся о том, что вы добавляете к URL-адресу после вопросительного знака, поэтому foo.com/bar.aspx?pageid=1 будет работать так же, как foo.com/bar.aspx?someparam=sdf или foo .com / bar.aspx? id = 1 & p = 3 & t = 3.

Вы можете (или не можете) реализовать некоторые функции на основе строки запроса (например, разбиение на страницы), поэтому он будет анализировать строку запроса и действовать соответствующим образом.

person Roman Hutnyk    schedule 19.04.2017
comment
Что мне делать, если на исходном сайте много страниц с URL-адресами, такими как 'span.aspx? Pageid = xxx' (это не разные страницы одного документа), и мне нужно сохранить эту структуру? - person 2sugoi2handle; 19.04.2017
comment
Вы ответили на свой вопрос: это одна страница, которая действует / показывает разные данные / контент на основе указанного параметра строки запроса. - person Roman Hutnyk; 19.04.2017

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

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

person Brenden Kehren    schedule 19.04.2017

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

/bar/{pageid} - {pageid} - это позиционный параметр на языке Kentico, если вы решите использовать динамические URL-адреса на основе шаблонов. Итак, если у вас есть код, который полагается на параметр pageid для получения некоторых данных, Kentico передаст это значение. Например, в случае /bar/420 он передаст pageid как 420 различных веб-частей в вашем шаблоне.

/bar/{?pageid?} - Это будет искать параметр строки запроса "pageid" в URL-адресе запроса и заменять его значение здесь. Таким образом, если вы передали foo.com/bar.aspx?pageid=366, результирующий URL будет /bar/366

№1 - это позиционный параметр, а №2 - это способ, которым Kentico разрешает макросы строки запроса.

Надеюсь, это проясняет.

person Chetan Sharma    schedule 20.04.2017