如何执行转换此网址的重定向规则:
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=([^=&]+)(&FORCESHOWCASE=([^=&]+))?(&THEMEPREVIEW=([^=&]+))?$" />
</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}&FORCESHOWCASE={R:2}&THEMEPREVIEW={R:4}" />
</rule>
重写规则识别我是否放置了一些参数或所有参数并且效果很好,如果我尝试使用上面的任何网址,它会使用正确的参数将其重写为正确的网址,但问题在于重定向规则如果我放入浏览器,它根本不起作用:
http://localhost/app/Company/HomePage.aspx?COMPANYID=2&FORCESHOWCASE=TRUE&THEMEPREVIEW=3
它没有重定向到正确的页面,我不知道该怎么做,请帮忙! 对不起我的英文并提前致谢
答案 0 :(得分:-1)
由于没有人回答我的问题,似乎没有“简单”的答案。
我做这项工作的方式是改变我的规则,使用会话变量而不是查询字符串