簡體   English   中英

重定向規則iis 7 URL重寫的可選參數

[英]optional parameters for redirect rule iis 7 url rewriting

我該如何做一個轉換此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

它沒有重定向到正確的頁面,我不知道該怎么辦,請幫忙! 對不起,我的英語,請先謝謝

由於沒有人回答我的問題,因此似乎沒有“簡單”的答案。

我進行這項工作的方式是使用會話變量而不是querystring更改規則。

暫無
暫無

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

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