最佳DotNetNuke网址重写方法?

use*_*885 5 asp.net dotnetnuke

我想为DotNetNuke实现一个URL重写器.对于这是一个好的或可能的方法以及其他开发人员可能提出的任何建议有疑问.

我可以从"页面" - >"添加页面"部分为URL重写器添加动态或静态路由吗?

假设我正在"活动"菜单项下创建一个名为"活动"的页面.

我可以在DotNetNuke中编写一些自定义代码,它会在添加页面屏幕上添加一个提示,假定我想要添加一个静态或动态路由 - site.com/Activities/Events或者如果我将页面命名为"Event Calendar"那么它建议'site.com/Activities/Event-Calendar'?

我想就如何实现这一目标提出任何反馈或建议!谢谢.

Eff*_*ave 5

如果您使用的是DotNetNuke 4.8或更高版本,则只需通过Web.Config启用Human Friendly Urls.

要启用人性化的网址,请替换:

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

有:

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

更新:对于DNN 7.x及更高版本,现在应该是:

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

其他细节:在DotNetNuke中启用人员友好网址