如何在DNN中使用带Ifinity友好url模块的xml扩展名调用xml文件?
我有一个问题,试图使工作的url重写。我有一个DNN网站,对于url重定向,我们使用iFinity友好的url模块 我们在DNN应用程序的SiteUrls.config文件中定义了一些URL。我们有这个重定向规则:如何在DNN中使用带Ifinity友好url模块的xml扩展名调用xml文件?,xml,url-rewriting,dotnetnuke,Xml,Url Rewriting,Dotnetnuke,我有一个问题,试图使工作的url重写。我有一个DNN网站,对于url重定向,我们使用iFinity友好的url模块 我们在DNN应用程序的SiteUrls.config文件中定义了一些URL。我们有这个重定向规则: <RewriterRule> <LookFor>/sitemap.aspx</LookFor> <SendTo>/sitemap.xml</SendTo> </RewriterRule>
<RewriterRule>
<LookFor>/sitemap.aspx</LookFor>
<SendTo>/sitemap.xml</SendTo>
</RewriterRule>
/sitemap.aspx
/sitemap.xml
当我们调用此url时,此功能正常工作:
尽管如此,当我们尝试直接调用文件时,使用如下url:
它不起作用强>
我们配置了iFinity模块的Regex设置部分,因此我们的web.config文件中包含以下内容:
<friendlyUrl defaultProvider="iFinity.UrlMaster">
<providers>
<clear />
<add name="iFinity.UrlMaster" type="iFinity.DNN.Modules.UrlMaster.DNNFriendlyUrlProvider, iFinity.UrlMaster.FriendlyUrlProvider" urlFormat="HumanFriendly" replaceSpaceWith="-" pageExtensionUsage="Never" forceLowerCase="true" useBaseFriendlyUrls="Search Results" useSiteUrlsRegex="/rss\.aspx|Telerik.RadUploadProgressHandler\.ashx|BannerClickThrough\.aspx|/Admin/[^/]+/Tabid/\d+/.*default\.aspx|/Host/[^/]+/Tabid/\d+/.*default\.aspx|/sitemap\.xml" ignoreRegex="(?<!linkclick\.aspx.+)(?:\.pdf$|\.gif$|\.png($|\?)|\.css$|\.js($|\?)|\.jpg$|\.html$|\.htm$|\.axd($|\?)|\.swf$|\.flv$|\.ico$|\.xml($|\?)|\.txt$)" />
<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" urlFormat="humanfriendly" />
</providers>
</friendlyUrl>
如果您使用的是IIS7,请尝试在常规站点地图处理程序之后添加它
<add name="SitemapXmlHandler" path="Sitemap.xml" verb="*" type="DotNetNuke.Services.Sitemap.SitemapHandler, DotNetNuke" preCondition="integratedMode" />
如果您使用的是IIS7,请尝试在常规站点地图处理程序之后添加它
<add name="SitemapXmlHandler" path="Sitemap.xml" verb="*" type="DotNetNuke.Services.Sitemap.SitemapHandler, DotNetNuke" preCondition="integratedMode" />
当您尝试直接转到sitemap.xml时,了解发生了什么会有所帮助 尝试告诉UrlMaster忽略sitemap.xml,如下所示:
<add name="iFinity.UrlMaster" type="iFinity.DNN.Modules.UrlMaster.DNNFriendlyUrlProvider, iFinity.UrlMaster.FriendlyUrlProvider" urlFormat="HumanFriendly" replaceSpaceWith="-" pageExtensionUsage="Never" forceLowerCase="true" useBaseFriendlyUrls="Search Results" useSiteUrlsRegex="/rss\.aspx|Telerik.RadUploadProgressHandler\.ashx|BannerClickThrough\.aspx|/Admin/[^/]+/Tabid/\d+/.*default\.aspx|/Host/[^/]+/Tabid/\d+/.*default\.aspx|sitemap\.xml" ignoreRegex="(?<!linkclick\.aspx.+)(?:\.pdf$|\.gif$|\.png($|\?)|\.css$|\.js($|\?)|\.jpg$|\.html$|\.htm$|\.axd($|\?)|\.swf$|\.flv$|\.ico$|\.xml($|\?)|\.txt$)" />`
`
我在
useSiteUrlsRegex
中删除了sitemap.xml中的/当您尝试直接转到sitemap.xml时,了解发生了什么会有所帮助
尝试告诉UrlMaster忽略sitemap.xml,如下所示:
<add name="iFinity.UrlMaster" type="iFinity.DNN.Modules.UrlMaster.DNNFriendlyUrlProvider, iFinity.UrlMaster.FriendlyUrlProvider" urlFormat="HumanFriendly" replaceSpaceWith="-" pageExtensionUsage="Never" forceLowerCase="true" useBaseFriendlyUrls="Search Results" useSiteUrlsRegex="/rss\.aspx|Telerik.RadUploadProgressHandler\.ashx|BannerClickThrough\.aspx|/Admin/[^/]+/Tabid/\d+/.*default\.aspx|/Host/[^/]+/Tabid/\d+/.*default\.aspx|sitemap\.xml" ignoreRegex="(?<!linkclick\.aspx.+)(?:\.pdf$|\.gif$|\.png($|\?)|\.css$|\.js($|\?)|\.jpg$|\.html$|\.htm$|\.axd($|\?)|\.swf$|\.flv$|\.ico$|\.xml($|\?)|\.txt$)" />`
`
我在useSiteUrlsRegex