私は数年前、すべてのサイトページを表示するために単一のAPSXページを使用するデータベース駆動型ASP.NETサイトを作成しました。だから、サイトのすべてのURLは次の形式である:プラスASP.NETサイトのクエリ文字列
/main.aspx?page=Page+Title+One
/main.aspx?page=Another+Article+Title
/main.aspx?page=Third+Page
main.aspxページには、クエリ文字列データ(ページ+タイトル+例えば1)を取得し、適切な資料を引くためのキーとして使用しますSQLサーバーデータベースの内容。ページの実際のタイトルは、プラスではなくスペースでDBに格納されます(たとえば、 "Page Title One")。
URLクエリ文字列の単語区切り記号として+記号を使用するという貧弱な決定は、最近検索エンジンで問題が発生しているため(コンテンツの複製など)、URLを変更せずに修正したい。私は301恒久的なリダイレクトにやりたい
/main.aspx?page=Page Title One
:検索エンジンや訪問者が、例えば、+印を逃し、代わりに空白を持つ間違ったURLにアクセスしようとしたとき、私は何をしたいのか
は以下のとおりです。
/main.aspx?page=Page+Title+One
実際quesry文字列がある場合でも、私は、クエリ文字列値がプラスまたは白のスペースを持っている場合、私は場合、Request.QueryString [「ページ」]で値を取得するときしかし、チェックする必要があり、これを行うことができるようにするために私はまだ空白文字列 "ページタイトル1"を取得します。
このサイトはIIS6/Win 2003上で動作します。
どうすればいいですか?
私のURLは、空白または%20の代わりに常にプラス記号のみを使用していますが、Googleでは/main.aspx?page=KW1 KW2と/main.aspx?page=KW1%のようにキャッシュされたページが表示されます20KW2、両方とも間違っており、重複したコンテンツの問題を引き起こしています。今私は301に、/main.aspx?page=KW1+KW2という適切なURLを付けたいと思います。 –
それは私が説明していたこととほとんど同じです。明確ではなかったことが分からないので、うまくいけば説明するコード例を追加しました。 –
ありがとうジョン、これはまさに私が必要なものです:)。質問に答えたものをどのようにマークするのですか? –