2012-05-14 146 views
1

我怎樣才能做到這一點轉變這個URL重定向規則:對重定向規則可選參數IIS 7 URL重寫

http://localhost/app/Company/HomePage.aspx?COMPANYID=2&FORCESHOWCASE=TRUE&THEMEPREVIEW=3 

這一個:

http://localhost/app/2/showcase/preview/3 

但這裏的技巧是,所有的參數是除了COMPANYID可選的,所以該URL可以是:

http://localhost/app/2/preview/3 

或:

http://localhost/app/2/showcase 

我一直沒有找到合適的重定向規則來匹配這種模式。我已經試過如下:

<rule name="RedirectUserFriendlyURLCompany" stopProcessing="true"> 
        <match url="^Company/HomePage\.aspx$" /> 
        <conditions> 
         <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" /> 
         <add input="{QUERY_STRING}" pattern="^COMPANYID=([^=&amp;]+)(&amp;FORCESHOWCASE=([^=&amp;]+))?(&amp;THEMEPREVIEW=([^=&amp;]+))?$" /> 
        </conditions> 
        <action type="Redirect" url="{C:1}" appendQueryString="false" /> 
       </rule> 
       <rule name="RewriteUserFriendlyURLCompany" stopProcessing="true"> 
        <match url="^([A-Za-z0-9]+)/?([A-Za-z0-9]*)(/preview/([A-Za-z0-9]*))?/?$" /> 
        <conditions> 
         <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
         <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
        </conditions> 
        <action type="Rewrite" url="Company/HomePage.aspx?COMPANYID={R:1}&amp;FORCESHOWCASE={R:2}&amp;THEMEPREVIEW={R:4}" /> 
       </rule> 

重寫規則承認,如果我把一些參數或所有這些偉大工程,如果我有任何的網址試圖從它上面將其重寫與正確的網址正確的參數,但問題是與重定向規則,它不會在所有的工作,如果我把瀏覽器:

http://localhost/app/Company/HomePage.aspx?COMPANYID=2&FORCESHOWCASE=TRUE&THEMEPREVIEW=3 

它不重定向到正確的頁面,我不知道該怎麼辦, 請幫忙! 對不起,我的英語,並提前感謝

回答

-1

由於沒有人回答我的問題,似乎theres沒有「容易」的答案。

我做這項工作的方式是改變我的規則,使用會話變量而不是查詢字符串