Как вызвать XML-файл, используя расширение XML с модулем URL Ifinity Friendly в DNN? - PullRequest
1 голос
/ 04 ноября 2011

У меня проблема с попыткой переписать URL. У меня есть веб-сайт DNN, и для перенаправления URL-адресов мы используем модуль iFinity Friendly Urls.

Мы определили некоторые URL-адреса в файле SiteUrls.config приложения DNN. У нас есть это правило перенаправления:

  <RewriterRule>
    <LookFor>/sitemap.aspx</LookFor>
    <SendTo>/sitemap.xml</SendTo>
  </RewriterRule>

Это работает правильно, когда мы вызываем этот URL: http://mysite.com/sitemap.aspx

Несмотря на то, что когда мы пытаемся вызвать файл напрямую, используя URL-адрес: http://mysite.com/sitemap.xml

Это не работает !!

Мы настроили раздел Regex Settings модуля iFinity, поэтому в нашем файле 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="(?&lt;!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>

Ответы [ 2 ]

1 голос
/ 06 ноября 2011

Если вы используете IIS7, попробуйте добавить это после обычного обработчика SiteMap

      <add name="SitemapXmlHandler" path="Sitemap.xml" verb="*" type="DotNetNuke.Services.Sitemap.SitemapHandler, DotNetNuke" preCondition="integratedMode" />
0 голосов
/ 18 ноября 2011

Было бы полезно знать, что происходит, когда вы пытаетесь перейти прямо к 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="(?&lt;!linkclick\.aspx.+)(?:\.pdf$|\.gif$|\.png($|\?)|\.css$|\.js($|\?)|\.jpg$|\.html$|\.htm$|\.axd($|\?)|\.swf$|\.flv$|\.ico$|\.xml($|\?)|\.txt$)" />`

Я удалил/ из sitemap.xml в useSiteUrlsRegex

...