IIS中的URL重写规则是否会混淆?
我在URL重写规则中遇到问题。
我在asp.net网站上使用UrlRewritingNet.UrlRewriter Dll进行Url重写。
我使用规则名称为“高级”
&安培;其他规则名称为DefaultRule,用于任何用户配置文件页面(即任何用户的配置文件页面)。
当我输入用户名为“AdvancedMachinesTools”时。
该规则如下: -
<urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="Login" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
<rewrites>
<add name="advanced" virtualUrl="^~/advanced" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/advancedSearch.aspx" ignoreCase="true" />
<add name="DefaultRule" virtualUrl="^~/(.*)" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/UserProfile.aspx?uname=$1" ignoreCase="true"/>
</rewrites>
</urlrewritingnet>
我收到错误消息“文件不存在”我最后在web.config文件中写了DefaultRule。
我是如何解决它的?
EDITED
例子
假设我的网站网址为:www.abcd.com
1)对于高级规则,我写了这样的网址www.abcd.com/advanced
规则:
<add name="advanced" virtualUrl="^~/advanced" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/advancedSearch.aspx" ignoreCase="true" />
2)对于默认用户规则
假设用户名:AdvancedEyecare它使用默认规则
<add name="DefaultRule" virtualUrl="^~/(.*)" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/UserProfile.aspx?uname=$1" ignoreCase="true"/>
当我输入网址时,如http://www.abcd.com/AdvancedEyecare
然后我收到错误“文件不存在”,因为规则使用了1个高级规则而未使用用户默认规则。我想调用userrule而不是1个高级规则。
怎么解决呢?
没有找到相关结果
已邀请:
2 个回复
碧肮械淌设
:
这只会匹配
并将其重写为
:
你想要的另一个重写是
辰炔诚薯
然而,为什么OlewinskiGroup会被匹配成“(。*)/ Group”?没有斜线存在