重写DNN的URL

时间:2010-04-22 23:09:25

标签: asp.net dotnetnuke

我有一个网站,并且已经尝试进行一些网址重写,但想知道是否有解决方案可以让它更好

我当前的状态网址看起来像这样

http://snit.us/Home/tabid/314/CN/1/RE/23/United_States_Missouri.aspx

我想将它们更改为更有序的东西,所以在我的新计划中我想要这样做

http://snit.us/Home/United_States/Missouri/default.aspx

显然,关键是如果我从新网址中删除密苏里州,它会找到所有美国国家/地区等等

更好的是拥有http://snit.us/Home/United_States/Missouri所以它更加混乱

1 个答案:

答案 0 :(得分:0)

我认为你最好的选择是为DotNetNuke实现免费iFinity URL Rewriter。至少,您应该能够实现以下目标:

http://snit.us/Home/CN/1/RE/23/United_States_Missouri

如果您使用的是IIS 6,则需要在IIS中启用无扩展名的URL。如果您使用的是IIS 7,则无需进行任何更改。

要进行设置,您只需将iFinity提供的DLL添加到您网站的bin目录中,然后按照下载附带的说明配置您的web.config(确保制作备份副本您的web.config是为了安全和方便。)

以下是我们在dnnGallery.net上使用的示例配置:

<add name="Ifinity.FriendlyUrl" type="iFinity.DNN.Modules.FriendlyUrl.DNNFriendlyUrlProvider, iFinity.FriendlyUrlProvider" includePageName="true" regexMatch="[^\+a-zA-Z0-9 _-]" urlFormat="HumanFriendly" redirectUnfriendly="true" doNotRewriteRegex="(\.axd)|(/DesktopModules/)" doNotRedirect="SearchResults;" doNotRedirectRegex="[.]*(/logoff.aspx)" pageExtensionUsage="never" parameterHandling="ordered" checkForDupUrls="true" forceLowerCase="true" redirectWrongCase="false" replaceSpaceWith="_" redirectDefaultPath="true" />