1

この 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>

書き換えルールは、いくつかのパラメーターまたはすべてのパラメーターを配置してうまく機能するかどうかを認識し、上記の URL のいずれかを試してみると、正しいパラメーターを使用して正しい URL に書き換えますが、問題はリダイレクト ルールにあります。ブラウザに入れた場合、まったく機能しません:

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

正しいページにリダイレクトされず、どうすればよいかわかりません。助けてください! 私の英語で申し訳ありませんが、事前に感謝します

4

1 に答える 1

-1

誰も私の質問に答えていないので、「簡単な」答えはないようです。

これを機能させる方法は、クエリ文字列の代わりにセッション変数を使用して、ルールを変更することでした

于 2012-06-26T16:34:07.157 に答える