web-dev-qa-db-ja.com

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

現在、私の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' );
10
henrywright

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

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

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

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

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

6

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

* URLの大文字と小文字が一致しないと、コンテンツの重複の問題やページランクの希釈が発生しますか?たとえば、www.site.com/abc vs www.site.com/Abc。 Windowsホストでは、これらは同じページですが、Unixホストでは異なるページです。

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

IEチームは、パフォーマンスを改善できるため、 ファイルの大文字と小文字の区別を厳守して を推奨しています。

4
mvark