web-dev-qa-db-ja.com

URLは小文字にする必要がありますか?

このブログ(「SEOフレンドリーなURL構文の実践を理解する」) を変更する必要がある

http://example.com/Hello-Dolly

http://example.com/hello-dolly

指定された理由は次のとおりです。

  • 一般に、URLは大文字と小文字を区別します
  • 大文字と小文字を区別するSEOと分析レポートを簡素化します

RL Normalization に関するWikipediaの記事で見つけたこのGIFによれば、URLを大文字からすべて小文字に変換する必要があります。

しかし、私は ASP.NET MVC を使用し、デフォルトでは私のURLは次のように構成されています( CamelCase ):

http://www.example.com/Controller/Action/Parameter

http://www.example.com/Categories/List/Bicycles

RFC1738 をざっと読みましたが、これに対する決定的な答えは見当たりませんでした。

フレームワークがすべてを小文字に変更するように強制するには、邪魔にならないようにすべきですか?みんなが小文字を使うように言っているのに、なぜマイクロソフトはこのようなフレームワークを設計することを選んだのですか?

17
Rowan Freeman

Should I go out of my way to force the framework to change everything to lower case?

いいえ、それは必要ありません。 Windowsオペレーティングシステムは、サーバーOSやフレームワークアプリケーションなど、大文字と小文字を区別しません。ただし、Linux/Unixオペレーティングシステムでは大文字と小文字が区別されます。

インターネットベースのアプリケーション(ブラウザなど)は、 RFC 3986 のセクション6で説明されているように、 normalize URLである必要があります。

URIで最も一般的な操作の1つは単純な比較です。つまり、2つのURIがそれぞれのリソースにアクセスするためにURIを使用せずに同等であるかどうかを判断します。比較は、応答キャッシュにアクセスするたびに実行されるか、ブラウザーがその履歴をチェックしてリンクに色を付けるか、XMLパーサーが名前空間内のタグを処理します。 URIを比較する前の広範な正規化は、検索スペースを整理したり、要求アクションと応答ストレージの重複を減らすために、スパイダーとインデックスエンジンによってよく使用されます。

間違いなくWindowsサーバーを使用するため、要求されたURLとURIはクライアントアプリケーションに正常に返されます。


上記のRFCおよび RL正規化 :のウィキペディアリンクに記載されている検索エンジンに関して

検索エンジンは、Webページに重要度を割り当て、重複ページのインデックス作成を減らすために、URL正規化を採用しています。

そして this のようなソースとして主題について報告します:

最近、Googleは/page1.htmlと/Page1.htmlが同じコンテンツの2つのインスタンスにすぎないことをよりよく理解し始めました。


Why did Microsoft choose to design their framework like this if everybody is telling me to use lowercase?

オペレーティングシステムとの互換性があり、RFCによると技術的には正しくありません。また、ウェブマスターが推測し続ける独自の方法もあります:-)

10
dan

変更する必要があることはわかりませんが、一貫性を保つ必要があります。

私はこれを数年前に調べましたが、Googleの標準は、TLDが問題になる前ではなく、TLDが問題になる前のケースです。

当時、私はBusinessForPhotographers.comと呼ばれる機能しないサイトで作業していました。どうやら一貫して大文字と小文字を区別しないとして扱われます。

.comの後は別の問題です。サーバーは、/Great-Article/great-articleとは異なるものと見なします(サーバーが同じ場所にルーティングする場合でも)。

これは、正規化と重複コンテンツの問題に影響を与える可能性があります。最も安全な方法は、正しいバージョンへの301リダイレクトを強制することだと思います。

これはYouTubeのようなサービスについては無意味に思えるかもしれませんが、/A1B2C3/a1b2c3と同じURLですか?

Googleの目にはありません。

4
adam-asdf

URIパスでは大文字と小文字が区別されます(特に定義されていない場合)。 RI標準STD 66、セクション6.2.2.1。ケースの正規化 を参照してください。

他の一般的な構文コンポーネントは、スキームで特に定義されていない限り、大文字と小文字が区別されると想定されます

HTTP URIパスの大文字が一部のユーザーにとって問題となる場合、Wikipediaはそれらのユーザーに対して壊れます。これら2つのHTTP URI(小文字のoと大文字のOのみが異なる)は、異なるページにつながります。

そのため、URIを変更するhaveはありません。

ただし、可能であれば(Wikipediaのようにこのケースを使用しない場合)、 それは良い習慣です を許可するallケースバリアントおよび301正規バリアントへのリダイレクト。

3
unor