URLパスは大文字と小文字を区別する必要がありますか?


11

現在、私のWebサイトのURLでは大文字と小文字が区別されません。たとえば、次のリンクはどちらもまったく同じページを示しています。

  • http://example.com/about
  • http://example.com/About

しかし、wordpress.orgのWebサイトを見ると、URLは大文字と小文字が区別されていることに気付きました。たとえば、下の2番目のリンクは404エラーページです。

  • http://wordpress.org/about
  • http://wordpress.org/About

私の考えは、私のWebサイトのURLで大文字と小文字を区別することです。コンテンツの重複を回避するという明らかな問題は別として、大文字と小文字を区別するURLを使用することの長所と短所は何ですか?

更新

Googleは独自のURLで大文字と小文字を区別するURLポリシーを運用しているようです。たとえば、下の2番目のリンクは404です。

  • http://google.com/doodles
  • http://google.com/Doodles

アップデート2

ご回答ありがとうございます。受け入れられた回答に記載されているアドバイスを取り入れ、必要に応じて301リダイレクトを実装することにしました。私はWordPressを使用しているので、私のコードソリューションは次のとおりです(誰かが興味を持っている場合に備えて)。

function force_lowercase_urls() {

    if ( is_admin() )
        return;

    if ( preg_match( '/[A-Z]/', $_SERVER['REQUEST_URI'] ) ) {

        wp_redirect( strtolower( $_SERVER['REQUEST_URI'] ), 301 );
        exit();
    }

}
add_action( 'init', 'force_lowercase_urls' );

1
But wouldn't that result in duplicate content? – henrywrightサイトで正規リンクが正しく使用されていれば、1つのページに100万通りの方法でアクセスでき、重複したコンテンツの影響を受けることがなければ、重複したリンクについて心配する必要はありません。
Simon Hayter

@bybe何百もの方法で1つのページにアクセスしている場合、Googlebotはサイトを適切にクロールできません。いくつかの方法でページにアクセスしても問題はありません。
スティーブンオスターミラー

回答:


6

Webコンテンツを提供するために最も広く使用されている2つのオペレーティングシステムファイルシステムでは、デフォルトでURLの大文字と小文字を区別する設定が大きく異なります。URLで大文字と小文字が区別されるかどうかは、おそらく使用している機能です。

  • Windowsで実行されているMicrosoft IIS(大文字と小文字を区別しないURL)は、大文字と小文字に関係なく同じコンテンツを表示します。
  • Linuxで実行されているApache HTTPDサーバー -大文字と小文字が区別されるURL-が正しくない大文字で404 not foundエラーが発生します。

私の意見では、どちらのデフォルトも理想的ではありません。

  • 大文字に関係なく同じコンテンツを表示すると、Webサイトのクロールが困難になります。検索エンジンは、複数のURLの同じコンテンツを重複コンテンツと見なします。
  • 大文字が正しくない場合のエラーページの表示は、ユーザーフレンドリーではありません。ユーザーは通常、入力時に大文字と小文字を区別しません。

理想的な解決策は、URLが正しく大文字になっている場合にのみページを表示することです。大文字が正しくない場合、ユーザーは優先大文字に301リダイレクトされる必要があります。これを行うにはいくつかの方法があります。


1
これは、Unix環境での大文字と小文字の区別に関する以前の標準から逸脱したDOSおよびWindowsのアーティファクトだと思います。

1
Apacheがファイルシステムにマップするリクエストで大文字と小文字を区別するかどうかは、Apache自体ではなく、基礎となるファイルシステムに依存します。WindowsでApacheを実行している場合は、要求する/iNdEx.HtMl/InDeX.hTml、両方とも戻ります/index.html/index.htmlファイルシステム上の物理ファイルである場合)。
MrWhite 2016

1
実際、これはIISでも同じように見えます
MrWhite 2016

1
まあ、IISは常にWindows(AFAIK)で実行されるので、ファイルシステムのリクエストでは常に大文字と小文字が区別されません。ただし、多くのサイトは、何らかのフロントコントローラーを介してURLをルーティング(書き換え)します。この場合、リクエストはおそらくファイルシステムの物理ファイルにマッピングされないため、URLはおそらく大文字と小文字を区別します(アプリが特に大文字小文字を区別しない限り) -insensitive)-これは基本的にApacheと同じです(Windowsで実行している場合)。(?)
MrWhite 2016

2
なぜURLは大文字と小文字を区別するのですか?」という最近/忙しい質問を調査しているときに、実際にここで偶然見つけました。「IISは大文字と小文字を区別しない」などのフレーズ(他のスレッドで何度か言及されている)が広まっているため、IIS上のURLは常に大文字と小文字を区別しないと考えられています。まったくそうではないようです。
MrWhite 2016

4

アーカイブされたライブチャットセッションからのGoogleの位置は次のとおりです(リンクは現在無効です):

* URLの一貫性のない大文字の使用は、重複したコンテンツの問題とページランクの希薄化を引き起こしますか?たとえば、www.site.com / abcとwww.site.com/Abcです。Windowsホストでは、これらは同じページですが、Unixホストでは別のページです。

JohnMu:こんにちは、John。既存の標準に基づいて、URLは大文字と小文字が区別されるので、はい、これらは別個のURLと見なされます。URLのコンテンツは同じであるため、通常はそれを認識し、そのうちの1つのみを保持します。ただし、すべてのリンクが1つのバージョンのURLに移動するようにすることをお勧めします。これはrobots.txtファイルにも適用されることに注意してください。*

IEチームは、パフォーマンスを向上させることができるので、ファイルの大文字と小文字の規則を選択し、厳密に従うことをお勧めします


-2

RFC 3986 6.2.2.1はURIを大文字と小文字を区別しないと定義しているため、wordpress.orgのように大文字と小文字を区別することはお勧めできません。


しかし、その結果、コンテンツが重複することはありませんか?

検索エンジンも大文字と小文字を区別せずに動作するはずなので、実際にはそうではありません。

ここでの質問は、検索エンジンが大文字と小文字のURLを同等と見なすかどうかを確認する方法だと思いますか?Googleを例にとりましょう:google.com/Doodlesgoogle.com/doodlesをお

10
そのRFCは、URLの3つの部分のケースのみを扱っています。1-プロトコル(http://)-大文字と小文字を区別せず、小文字に正規化します。2-ホスト名(example.com)-大文字と小文字を区別せず、小文字に正規化します。3.エンコードされた文字のパーセント(%3F)-大文字と小文字を区別せず、大文字に正規化します。URLの残りの部分では、通常、大文字と小文字が区別されます
Stephen Ostermiller
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.