我想像这样重写 url(DotNetNuke Friendly URLs):
从:/search.aspx?query=test
到:~/SearchResults?search=test
我尝试了各种组合,但看起来它没有考虑到问号后面的 url 部分
<RewriterRule>
<LookFor>.*/search.aspx?query=(.+)</LookFor>
<SendTo>~/SearchResults?Search=$1</SendTo>
</RewriterRule>
但它不起作用..
我努力了:
<RewriterRule>
<LookFor>.*/search.aspx\?query=(.+)</LookFor>
<SendTo>~/SearchResults?Search=$1</SendTo>
</RewriterRule>
但这也不适用于 url /search.aspx?query=test
。我得到了 search.aspx 的 404
这是 DotNetNuke 的 web.config 中的相关部分:
<friendlyUrl defaultProvider="DNNFriendlyUrl">
<providers>
<clear />
<add name="DNNFriendlyUrl"
type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules"
includePageName="true"
regexMatch="[^a-zA-Z0-9 _-]"
urlFormat="humanfriendly" />
</providers>
</friendlyUrl>
是否有什么导致它跳过?
如果有帮助,这是友好 url 重写器的源代码。我对正则表达式不是很好,所以我可以使用一些帮助。