2

私はこのようなURLを持っています:

http://www.example.com/erf4d

(ここで、erf4dは任意の5文字の文字列にすることができます)

ユーザーを次の場所にリダイレクトしたい:

http://www.example.com/viewentry.aspx?ID=erf4d

web.configの書き換えルールを使用してこれを達成しましたが、 http://www.example.com/erf4dがURLバーにとどまり、ユーザーに「醜い」viewentry.aspxが表示されないようにしたいと思います。 ID = erf4dは、必要に応じて一種のリダイレクトマスクです。これを達成する方法はありますか?

4

1 に答える 1

3

私の経験では、URL書き換えは逆に使用されます。したがって、ページは実際にはviewentry.aspx?ID = 123であり、リダイレクトによって/123にリダイレクトされます。

私はあなたがそれを間違った方法でやっているかもしれないと思いますか?IIS 7のウィザードを使用してSEO対応URLのURL書き換えを設定し、ベースとしてviewentry.aspx?ID = erf4dを使用すると、必要な場所に到達するのに役立ちます。

リダイレクト/書き換えは機能するため、test.com / 123に移動すると機能しますが、test.com / view.aspx?ID = 123に移動すると、test.com/123に送信されます。あなたが求めているのはどれですか?

乾杯

編集:これは私が使用するものの例です。news.aspx?page = 1を読み取り、news /1/に書き換えます。ただし、ルールにより、news / 1 /は実際にも機能するため、必要に応じてアンカーでそのように参照できます。

            <rule name="Redirect - /news.aspx?page=a to /news/a/" enabled="true" stopProcessing="true">
                <match url="^news\.aspx$" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
                    <add input="{QUERY_STRING}" pattern="^page=([0-9]{1,3})$" />
                </conditions>
                <action type="Redirect" url="news/{C:1}" appendQueryString="false" />
            </rule>
            <rule name="Rewrite - /news/a/ to page=a" enabled="true" stopProcessing="true">
                <match url="^news/([^/]+)/?$" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="news.aspx?page={R:1}" />
            </rule>
于 2012-05-21T09:27:18.127 に答える