簡體   English   中英

URL重寫規則限制在IIS中?

[英]URL rewrite rule conflits in IIS?

URL重寫規則出現問題。 我在Usp.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)對於高級規則,我寫了這樣的URL: 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條高級規則。 怎么解決呢?

$放在第一個模式的末尾:

<add name="advanced" virtualUrl="^~/advanced$" destinationUrl="~/advancedSearch.aspx" />

只會匹配/advanced並將其重寫為/advancedSearch.aspx

http://www.abcd.com/advanced -> http://www.abcd.com/advancedSearch.aspx

您想要的另一個重寫是

http://www.abcd.com/AdvancedEyecare -> http://www.abcd.com/UserProfile.aspx?uname=AdvancedEyecare   

首先,我將更改重寫規則的順序。

<rule name="GroupDefaultRule">
     <match url="Group" />
     <action type="Rewrite" url="Page2.aspx?action=group" />
</rule>
<rule name="Group1Rule">
     <match url="(.*)/Group" />
      <action type="Rewrite" url="page1.aspx?action=group&amp;uname={R:1}" />
</rule>

但是,為什么將OlewinskiGroup匹配為“(。*)/ Group”? 沒有斜杠

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM