Лучший подход переписывания URL DotNetNuke? - PullRequest
5 голосов
/ 12 февраля 2009

Я хотел бы реализовать перезапись URL для DotNetNuke. Есть вопросы относительно того, является ли это хорошим или возможным подходом, и какие-либо предложения, которые могут быть у других разработчиков.

Могу ли я добавить динамический или статический маршрут для переписчика URL из раздела «Страницы» -> «Добавить страницу»?

Допустим, я создаю страницу под названием «События» под пунктом меню «Действия».

Могу ли я написать собственный код в DotNetNuke, который добавит подсказку на экране добавления страницы, которая предполагает, что я хочу добавить статический или динамический маршрут для - site.com/Activities/Events Или если я назову страницу 'Календарь событий «Тогда это будет предлагать» site.com/Activities/Event-Calendar'?

Я хотел бы получить какие-либо отзывы или предложения о том, как мне этого добиться! Спасибо.

Ответы [ 5 ]

5 голосов
/ 03 июня 2009

Если вы используете DotNetNuke 4.8 или более поздней версии, вам просто нужно включить дружественные для человека URL через Web.Config.

Чтобы включить дружественные человеку URL-адреса, замените:

<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" />

с:

<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" urlFormat="HumanFriendly" />

UPDATE: Для DNN 7.x и выше это должно быть:

<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" urlFormat="advanced" />

Дополнительная информация: Включение дружественных человеку URL-адресов в DotNetNuke

3 голосов
/ 12 февраля 2009

Проверьте это - подробности здесь:

http://www.ifinity.com.au/Blog/Technical_Blog/EntryId/19/Rewriting-the-DotNetNuke-Url-Rewriter-Module/

Кроме того, взгляните на существующий модуль FriendlyUrl, который уже включен в DNN.

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

2 голосов
/ 14 декабря 2009

Чтобы ответить на ваш вопрос напрямую: да, вы можете добавить код на страницу настроек страницы DNN. Однако вы будете изменять основной код и, следовательно, не сможете легко обновить вашу установку, когда будет сделан следующий выпуск DNN.

Многие люди приходят в DNN и хотят написать новый URL Rewriter. Проблема не в переписывании: она заставляет структуру DNN генерировать правильные URL-адреса там, где они вам нужны - в меню, в сгенерированных ссылках внутри модулей. Чтобы действительно изменить схему перезаписи, вам необходимо заменить / дополнить функцию перезаписи URL-адресов, функцию создания дружественных URL-адресов и предоставить некоторую возможность перенаправления, чтобы связать старые и новые URL-адреса вместе.

1 голос
/ 12 марта 2009

Другое предложение - Page Blaster , если вы не хотите писать свой собственный код. Хорошо работает на сайтах, на которых я его использую.

0 голосов
/ 15 сентября 2011

Некоторые из них являются отличными ответами ... Одна из самых важных вещей, которую нужно знать, если вы только что узнали о DNN сейчас (2016 и выше), это то, что область переписывания URL-адресов со временем изменилась в DNN.

Раньше в DNN 4.8 и ниже вам приходилось использовать внешний модуль / провайдера, такой как: PageBlaster или DNN Masters SEO URL REWriter или iFinity URL REWriter все они упомянуты в некоторых ответах выше.

Однако после DNN 4.9 iFinity URL ReWriter был включен в ядро ​​DNN, и вы найдете его доступным в DNN 5, 6, 7 и 8 с различными уровнями воздействия на интерфейс. Вам по-прежнему необходимо выполнить некоторые обновления в файле web.config, но большая часть этого выполняется прямо в настройках страницы.

Любые настройки, не входящие в главные менеджеры, вы можете сделать либо в web.config, либо в базе данных, либо вы можете найти модуль DNN, такой как X3 DNN URL Management, который подключается к записям базы данных встроенный DNN URL переписчик и помогает управлять настройками (это очень похоже на старые экраны / опции интерфейса iFinity), но вам это не нужно, вы можете работать напрямую, это просто полезно.

...