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


17

よると、このブログ(「理解SEOフレンドリーなURLの構文プラクティス」)私は変更する必要があります

http://example.com/Hello-Dolly

http://example.com/hello-dolly

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

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

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

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

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

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

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

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


3
ここwebmasters.stackexchange.comのコミュニティへの質問に対する素晴らしい質問と素晴らしいプレゼンテーション!質問する前に、あなたは本当にこの問題についても「宿題」をしました!
dvnkiss

私は、プロキシがリクエストされたURLをすべて小文字に変更するという問題に遭遇しました-そして、私の./SO/サブディレクトリ(stackoverflowの例を置く)でページをホストするLinuxサーバーへのリクエストで404を引き起こしました。それは、小文字が違いを生むユースケースです(プロキシは不適切にコーディングされていると主張できますが、それは現実です...)
フローリス

回答:


10

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

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

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

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

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


上記のRFCおよびURL正規化に関するWikipediaリンクに記載されている検索エンジンに関して:

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

そして、このテーマに関するこのレポートのようなソースとして:

最近、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によると技術的には正しくありません。また、ウェブマスターが推測し続ける独自の方法もあります:-)


1
すばらしい回答です。非常によく似た回答を投稿するつもりでしたが、あなたはそれに私を打ち負かしました!「みんなが小文字を使うように言っているのに、なぜマイクロソフトはこのようなフレームワークを設計することを選択したのですか?...また、ウェブマスターが推測し続ける独自の方法もあります。」-そのビットが大好きです。私が覚えている限りでは、Microsoftには開発者/ウェブマスターを厳格なルールに「従わせる」独自の手段がありました。
dvnkiss

4

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

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

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

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

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

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

Googleの目にはありません。


3

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

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

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

だから、いいえ、あなたはしていない持っているあなたのURIを変更します。

ただし、(あなたはウィキペディアがするように、ケースを使用しない場合)、可能であれば、良い練習になることを可能にする、すべてのケースが変異体および標準的な変種に301リダイレクト。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.