dnn - 用于不存在的页面重定向的自定义模块

dnn - Custom module for unexisting page redirect

我想创建 dnn 自定义模块,将一些旧的 url-s 重定向到新页面。 我知道如何创建数据 table 并向此 table 添加记录。 table 具有包含所需数据的旧-url 和新-url 字段。例如:www.domain.com/oldurl, www.domain.com/newurl

如果我在模块视图中使用重定向,那么我只能将现有页面重定向到新页面,为此我不需要制作自定义模块...

我的问题是:要覆盖或使用什么我可以拦截请求并使用自定义 dnn 模块进行重定向?

===== 编辑 =====

我也找到了这个:dnnurlproviders https://archive.codeplex.com/?p=dnnurlproviders 这还在某处维护吗?

进行自定义重定向的答案是创建自定义 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 > URL管理

https://dnntracker.atlassian.net/browse/DNN-9148?attachmentOrder=desc

===========================

也为了在 iis 中处理旧 .php 链接的重定向,您必须在 IIS 中创建新的处理程序映射。只需将 PageHandlerFactory 复制到 *.php Path.

您也可以在不编写模块的情况下执行此操作,只需将记录添加到 DNN 中的 TABURLS table。

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
       )