我想创建一个dnn自定义模块,它会将一些旧的url-s重定向到新的页面。 我知道如何创建数据表并向此表添加记录。该表具有old-url和new-url字段以及所需数据。例如:www.domain.com/oldurl,www.domain.com/newurl
如果我在模块视图中使用重定向,那么我只能将现有页面重定向到新页面,为此我不需要制作自定义模块...
我的问题是:如何覆盖或使用我可以拦截请求并使用自定义dnn模块进行重定向?
=====编辑=====
我也发现了这一点:dnnurlproviders https://archive.codeplex.com/?p=dnnurlproviders 这仍然保留在某个地方吗?
答案 0 :(得分:3)
您也可以不编写模块,只需将记录添加到DNN中的TABURLS表中。
INSERT INTO dbo.TabUrls ( TabId ,
SeqNum ,
Url ,
QueryString ,
HttpStatus ,
CultureCode ,
IsSystem ,
PortalAliasId ,
PortalAliasUsage ,
CreatedByUserID ,
CreatedOnDate ,
LastModifiedByUserID ,
LastModifiedOnDate
)
VALUES ( ###, -- TabId - int
3 , -- SeqNum - int
N'/OLDURLHERE' , -- Url - nvarchar(200)
N'' , -- QueryString - nvarchar(200)
N'301' , -- HttpStatus - nvarchar(50)
N'' , -- CultureCode - nvarchar(50)
1 , -- IsSystem - bit
null , -- PortalAliasId - int
0 , -- PortalAliasUsage - int
1 , -- CreatedByUserID - int
GETDATE() , -- CreatedOnDate - datetime
0 , -- LastModifiedByUserID - int
GETDATE() -- LastModifiedOnDate - datetime
)
答案 1 :(得分:1)
进行自定义重定向的答案是创建自定义ExtensionUrlProvider。
一些有用的链接是:
http://www.dnnsoftware.com/answers/getting-started-with-dnnfriendlyurl-in-dnn-72x
http://www.dnnsoftware.com/answers/custom-extensionurlprovider
和dnn 9.0.0以及dnn 9.0.1之后缺少的自定义ExtensionUrlProvider的设置位于:
SEO>网址管理
https://dnntracker.atlassian.net/browse/DNN-9148?attachmentOrder=desc
===========================
还用于处理iis中旧的.php链接的重定向,您必须在IIS中创建新的Handler映射。只需使用PageHandlerFactory并将其复制为* .php Path。