2011-09-13 13 views
0

UrlReqritingNet私のasp.net 2.0アプリケーションでURLルーティングを含めるために使用しています。URLの書き換えとクエリ文字列のパラメータ

私はこれまで

http://mysite.com/book/detail.aspx?id=4 

を変更したい:

http://mysite.com/book/a-tale-of-two-cities 

本は4本のユニークなプライマリキーであること、データベースに格納されます。

しかし、このURLを使用して、私はidよりむしろ本の名前を使ってデータベースルックアップをしなければなりません。私はずっとユニークなIDを使う方が好きです。

明白な解決策は次のとおりです。

http://mysite.com/book/4 

または

http://mysite.com/book/a-tale-of-two-cities?id=4 

を考慮にしてSEOを取ると、これらのURLのいずれかが理想的ですか? StackOverflowのは、この非常にページ上で行うように

おかげ

+0

に名前と値のペアを持つことは、あなたが気にしてくださいより良いはずですか? "detail.aspx?id ="は私によく似ています。 – plntxt

+0

私はCMSを使用していません。上記は完全に仮説的な例です。私はdetail.aspxが人気のページ名だと思う;) –

答えて

2

はなぜまさにそれをしませんか?

http://mysite.com/book/4/a-tale-of-two-cities?id=4

スラッグ前にURLにIDを入れてください。そうすれば、スラッグが絶たれても、あなたはそのページを取り出すために必要なものすべてを持っています。

+0

私はその考えが好きです。私はこのテクニックを使用する場合でもクエリ文字列パラメータは必要ありません。 –

+0

私がもっと好きなのは、あなたがスラッグを変更した場合、それはID番号に基づいているべき場所にリダイレクトされます –

1

URL再書き込みのもう1つの考慮点は、ユーザーがURLを推測してサイトをナビゲートできるように、「ハッカー可能な」URLを作成することです。

http://mysite.com/books/detail/a-tale-of-two-cities 

書籍のタイトルを使用して書籍データテーブルに問い合わせることができます。ただし、これを行う場合は、クエリを実行する前にSQLインジェクションの試行ではないことを確認する(SQLパラメータを使用する)ことをお勧めします。

ビューのSEOの観点から、これはまた、私はあなたが使用しているCMS頼めばURL

+0

私はハッカー可能なURLがこの特定のサイトにとって非常に重要であるとは思わないと思います。そして私は文字列を使ってレコードの検索をする必要性を避けようとしています。 –

+0

ブライアンのポイントは、文字列ルックアップを使用することによって、SQLインジェクションに注意する必要があることです。これは良い方法です。 – plntxt

+0

はい、それは良い点です。私は常にストアドプロシージャまたはパラメータ化されたSQLを使用します。 –

関連する問題