seo
重写 url 和人性化的 url 在性能上非常重要。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
这种方法也已经过测试:
- 在我的 IIS ( http://www.iis.net/download/urlrewrite )上安装了 urlrewrite 扩展
- 将以下代码片段添加到 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>