URL 경로는 대소 문자를 구분해야합니까?


11

내 웹 사이트의 URL은 현재 대소 문자를 구분하지 않습니다. 예를 들어, 다음 링크 모두 정확히 동일한 페이지를 보여줍니다.

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

그러나 wordpress.org 웹 사이트를 살펴보면 URL이 대소 문자를 구분한다는 것을 알았습니다. 예를 들어 아래 두 번째 링크는 404 오류 페이지입니다.

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

내 생각은 내 웹 사이트의 URL을 대소 문자를 구분하는 것입니다. 중복 콘텐츠를 피하는 명백한 문제 외에도 대소 문자를 구분하는 URL의 장단점은 무엇입니까?

최신 정보

Google은 자체 URL에서 대소 문자를 구분하는 URL 정책을 운영하는 것 같습니다. 예를 들어 아래 두 번째 링크는 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 페이지에 액세스 할 수 있고 중복 컨텐츠에 영향을 미치지 않는 경우 중복 링크에 대해 걱정할 필요가 없습니다.
Simon Hayter

@bybe 한 페이지에 수많은 방법으로 액세스 한 경우 Googlebot이 사이트를 제대로 크롤링 할 수 없습니다. 가지 방법으로 페이지에 액세스한다고 해서 다 치지 않을 것입니다.
Stephen Ostermiller

답변:


6

웹 컨텐츠를 제공하기 위해 가장 널리 사용되는 운영 체제 파일 시스템 중 두 가지는 기본적으로 URL의 대소 문자 구분 설정이 매우 다릅니다. URL이 대소 문자를 구분하는지 여부는 사용중인 기능 일 수 있습니다.

  • Windows에서 실행되는 Microsoft IIS ( 대소 문자를 구분하지 않는 URL)는 대소 문자에 관계없이 동일한 내용을 표시합니다.
  • Linux에서 실행되는 Apache HTTPD 서버 ( 대소 문자 구분 URL)는 대문자를 잘못 입력하면 404 찾을 수 없음 오류를 발생시킵니다.

내 생각에, 기본값은 이상적이지 않습니다.

  • 대문자와 상관없이 동일한 콘텐츠를 표시하면 웹 사이트 크롤링이 더 어려워집니다. 검색 엔진은 여러 URL에서 동일한 컨텐츠를 중복 컨텐츠로 간주합니다.
  • 잘못된 대문자로 오류 페이지를 표시하는 것은 사용자 친화적이지 않습니다. 사용자는 일반적으로 입력 할 때 대문자를 신경 쓰지 않습니다.

이상적인 해결책은 URL이 올바르게 대문자 인 경우에만 페이지를 표시하는 것입니다. 대문자를 잘못 사용하려면 사용자를 선호 대문자로 리디렉션해야합니다. 이를 수행 할 수있는 몇 가지 방법이 있습니다.


1
이것이 유닉스 환경에서 우리가 가지고있는 이전의 대소 문자 구분 표준에서 벗어난 DOS와 Windows의 인공물이라고 생각합니다.
Sun

1
파일 시스템에 매핑되는 요청에서 Apache가 대소 문자를 구분하는지 여부는 Apache 자체가 아닌 기본 파일 시스템에 따라 다릅니다. Windows에서 Apache를 실행하는 경우 파일 시스템의 실제 파일을 제공 /iNdEx.HtMl하거나 요청 하거나 /InDeX.hTml둘 다 리턴 합니다. /index.html/index.html
MrWhite

1
실제로 이것은 IIS에서 동일한 것으로 보입니다 .
MrWhite

1
IIS는 항상 Windows (AFAIK)에서 실행되므로 파일 시스템 요청 은 항상 대소 문자를 구분하지 않습니다. 그러나 많은 사이트가 일종의 전면 컨트롤러를 통해 URL을 라우팅 (다시 쓰기)합니다.이 경우 요청이 파일 시스템의 실제 파일에 매핑되지 않으므로 URL이 대 / 소문자를 구분합니다 (앱에서 특정 경우를 제외하고는 제외) -insensitive)-기본적으로 Apache와 동일합니다 (Windows에서 실행할 때). (?)
MrWhite

2
최근에 / 바쁜 질문 " URL은 대소 문자를 구분하는 이유는 무엇입니까? " 를 조사하는 동안 실제로 여기를 우연히 발견했습니다 . "IIS는 대소 문자를 구분하지 않습니다"(다른 스레드에서 여러 번 언급 됨)와 같은 문구가 너무 널리 퍼져있어 IIS의 URL이 항상 대소 문자를 구분하지 않는다는 일반적인 믿음이 있습니다. 전혀 사실이 아닙니다.
MrWhite

4

보관 된 실시간 채팅 세션 에서 Google의 위치는 다음과 같습니다 (현재 링크가 종료되었습니다).

* 일치하지 않는 URL의 대문자로 인해 중복 콘텐츠 문제가 발생하고 페이지 순위가 희석됩니까? 예를 들어 www.site.com/abc와 www.site.com/Abc가 있습니다. Windows 호스트에서 이들은 동일한 페이지이지만 Unix 호스트의 다른 페이지입니다.

JohnMu : 안녕 John, 기존 표준에 따라 URL은 대소 문자를 구분하므로 예를 들어 별도 URL로 표시됩니다. URL의 내용은 동일하므로 일반적으로이를 인식하고 그 중 하나만 유지합니다. 그러나 모든 링크를 한 버전의 URL로 유지하는 것이 좋습니다. 이것은 robots.txt 파일에도 적용됩니다. *

IE 팀 은 파일 케이싱 규칙을 선택하고 성능을 향상시킬 수 있도록 엄격하게 준수 할 것을 권장 합니다.


-2

RFC 3986 6.2.2.1 에서는 URI를 대소 문자를 구분하지 않으므로 wordpress.org와 같이 대소 문자를 구분하지 않는 것이 좋습니다.


그러나 그로 인해 콘텐츠가 중복되지 않습니까?

검색 엔진도 대소 문자를 구분하지 않기 때문에 실제로는 그렇지 않습니다.

검색 엔진이 대문자와 소문자 URL을 동등한 것으로 보는지 알아내는 방법이 문제라고 생각합니다. Google을 예로 들어 보겠습니다. google.com/Doodlesgoogle.com/doodles

10
RFC는 URL의 세 부분에만 해당됩니다. 1-프로토콜 ( http://)-대소 문자를 구분하지 않으며 소문자로 정규화합니다. 2-호스트 이름 ( example.com)-대소 문자를 구분하지 않으며 소문자로 정규화됩니다. 3. 인코딩 된 문자 백분율 ( %3F)-대소 문자를 구분하지 않으며 대문자로 정규화합니다. 나머지 URL은 일반적으로 대소 문자를 구분합니다.
Stephen Ostermiller
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.