dotnetnuke 9 中的siteurls.config 和 url 重写

问题描述 投票:0回答:1

重写 url 和人类友好的 url 对于

seo
和性能非常重要。 dnnurlprovider 是 DNN 的默认重写器,规则写入 siteurls.config 和 DNN 9:

<?xml version="1.0" encoding="utf-8" ?>
<RewriterConfig>
    <Rules>
        <RewriterRule>
            <LookFor>.*DesktopDefault.aspx(.*)</LookFor>
            <SendTo>~/Default.aspx$1</SendTo>
        </RewriterRule>
        <RewriterRule>
            <LookFor>.*EditModule.aspx(.*)</LookFor>
            <SendTo>~/Default.aspx$1</SendTo>
        </RewriterRule>
        <RewriterRule>
            <LookFor>.*/TabId/(\d+)(.*)/Logoff.aspx</LookFor>
            <SendTo>~/Admin/Security/Logoff.aspx?tabid=$1</SendTo>
        </RewriterRule>
        <RewriterRule>
            <LookFor>.*/TabId/(\d+)(.*)/rss.aspx</LookFor>
            <SendTo>~/rss.aspx?TabId=$1</SendTo>
        </RewriterRule>
        <RewriterRule>
            <LookFor>.*Telerik.RadUploadProgressHandler.ashx(.*)</LookFor>
            <SendTo>~/Telerik.RadUploadProgressHandler.ashx$1</SendTo>
        </RewriterRule>
        <RewriterRule>
            <LookFor>[^?]*/TabId/(\d+)(.*)</LookFor>
            <SendTo>~/Default.aspx?TabId=$1</SendTo>
        </RewriterRule>
        <RewriterRule>
            <LookFor>.*BannerClickThrough.aspx(.*)</LookFor>
            <SendTo>~/DesktopModules/Admin/Banners/BannerClickThrough.aspx$1</SendTo>
        </RewriterRule>
 <RewriterRule>
            <LookFor>.*/m/(\d+)(.*)</LookFor>
            <SendTo>~/rss.aspx?TabId=$1</SendTo>
        </RewriterRule>
        </Rules>

</RewriterConfig>

现在我已经为新的 url 模式添加了新规则:

<RewriterRule>
        <LookFor>.*/m/(\d+)(.*)</LookFor>
        <SendTo>~/Default.aspx?TabId=$1</SendTo>
    </RewriterRule>

应用程序池重新启动,日志文件夹中没有写入任何错误,但我添加的重写规则不起作用。

http://domain.com/m/123 --> http://domain.com/Default.aspx?TabId=123

此方法也已经过测试:

  1. 在我的 IIS 上安装了 urlrewrite 扩展 (http://www.iis.net/download/urlrewrite)
  2. 添加了以下代码 dnn 站点 web.config 标签的片段:
    <rewrite><rules><rule name="UrlRewriteService" stopProcessing="true"><match url="^.*/m/(.*)$"/><action type="Rewrite" url="Default.aspx?TabId={R:1}" /></rule></rules></rewrite>
asp.net url-rewriting url-routing dotnetnuke dotnetnuke-9
1个回答
0
投票

我一直在努力解决这个问题,但终于找到了适合我的情况的好解决方案。 基本上,我只是希望它去掉 .aspx 文件扩展名。 我发现只需将 web.config 文件的 DNNFriendlyUrl 条目中的 urlFormat 参数修改为“advanced”即可:

<friendlyUrl defaultProvider="DNNFriendlyUrl">
  <providers>
    <clear />
    <add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" urlFormat="advanced" />
  </providers>
</friendlyUrl>

希望对正在寻找的人有所帮助

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.