내 URL은 소문자 여야합니까?


17

이 블로그 ( "SEO Friendly URL Syntax Practices"이해) 에 따르면 변경해야합니다

http://example.com/Hello-Dolly

http://example.com/hello-dolly

주어진 이유는 다음과 같습니다.

  • 일반적으로 URL은 대소 문자를 구분합니다
  • 대소 문자를 구분하는 SEO 및 분석 보고서를 단순화합니다.

URL 정규화 에 대한 Wikipedia의 기사에서 찾은이 GIF에 따르면 URL을 대문자에서 모두 소문자로 변환해야합니다.

그러나 ASP.NET MVC를 사용 하고 기본적으로 내 URL은 다음과 같이 구성됩니다 ( CamelCase ).

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

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

나는 RFC1738을 훑어 보았지만 이것에 대한 확실한 대답을 보지 못했습니다.

프레임 워크가 모든 것을 소문자로 변경하도록 강요해야합니까? 모두가 소문자를 사용하도록 지시하면 Microsoft가 왜 이와 같은 프레임 워크를 설계하기로 선택 했습니까?


3
webmasters.stackexchange.com에서 커뮤니티에 대한 질문에 대한 훌륭한 질문과 훌륭한 프레젠테이션! 당신은 실제로이 문제에 대해 당신의 '숙제'를 요청하기 전에 실제로했습니다!
dvnkiss

프록시가 요청 된 URL을 모두 소문자로 변경하는 문제가 발생하여 ./SO/ 하위 디렉토리 (스택 오버플로 예제를 넣은)의 페이지를 호스팅하는 Linux 서버에 대한 요청에서 404가 발생했습니다. 소문자가 차이를 만드는 유스 케이스입니다 (프록시가 잘못 코딩되었다고 주장 할 수 있지만 실제 상황입니다 ...)
Floris

답변:


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에 대한 가장 일반적인 작업 중 하나는 간단한 비교입니다. URI를 사용하지 않고 두 개의 URI가 동일한 지 여부를 결정하여 해당 리소스에 액세스합니다. 응답 캐시에 액세스 할 때마다, 브라우저가 히스토리를 점검하여 링크를 채색하거나 XML 구문 분석기가 네임 스페이스 내에서 태그를 처리합니다. URI를 비교하기 전에 광범위한 정규화는 종종 검색 공간을 정리하거나 요청 조치 및 응답 스토리지의 중복을 줄이기 위해 스파이더 및 인덱싱 엔진에 의해 사용됩니다.

의심의 여지없이 Windows 서버를 사용하므로 요청 된 URL과 URI가 클라이언트 응용 프로그램으로 제대로 반환됩니다.


위의 RFC 및 URL 정규화 에 대한 Wikipedia 링크에 명시된 검색 엔진과 관련하여 :

검색 엔진은 웹 페이지에 중요도를 할당하고 중복 페이지의 색인 생성을 줄이기 위해 URL 정규화를 사용합니다.

주제에 대한 보고서 와 같은 출처 :

최근에 Google은 /page1.html과 /Page1.html이 동일한 콘텐츠의 두 인스턴스에 불과하다는 것을 더 잘 이해하기 시작했습니다.


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

운영 체제와 호환되며 RFC에 따라 기술적으로 올바르지 않습니다. 그들은 또한 자신의 일을하는 방식을 가지고있어 웹 마스터가 추측하게합니다 :-)


1
큰 답변, 나는 매우 비슷한 답변을 게시하려고했지만 당신은 나를 이겼습니다! "모두가 소문자를 사용하도록 지시하면 Microsoft가 왜 이와 같은 프레임 워크를 설계하기로 선택 했습니까? ... 또한 웹 마스터가 추측하는 일을하는 방식도 있습니다." -그 비트를 사랑합니다. 내가 기억할 수있는 한, 마이크로 소프트는 개발자 / 웹 마스터를 '엄격한 규칙'으로 구부릴 수있는 자체 수단을 가지고있었습니다!
dvnkiss

4

나는 당신이 그것을 바꾸어야한다는 것을 모르지만 일관성을 유지해야합니다.

나는 몇 년 전에 이것을 조사했으며 TLD는 중요하지 않지만 TLD는 중요하기 전에 Google의 표준이었습니다.

당시 나는라는 기능이없는 사이트에서 일하고 있었다 BusinessForPhotographers.com. 분명히 그것은 대소 문자를 구분하지 않는 것으로 취급됩니다.

후에 .com또 다른 문제입니다. 서버가 동일한 위치로 서버를 라우팅하더라도 Google은와 /Great-Article구별됩니다 /great-article.

이는 표준화 및 중복 컨텐츠 문제에 영향을 줄 수 있습니다. 가장 안전한 방법은 301을 올바른 버전으로 리디렉션하는 것입니다.

이것은 YouTube와 같은 서비스에 대해 무의미하게 보일지 모르지만 /A1B2C3같은 URL은 /a1b2c3?

구글의 눈에는 없습니다.


3

URI 경로는 대소 문자를 구분합니다 (달리 정의되지 않은 경우). URI 표준 STD 66, 섹션 6.2.2.1을 참조하십시오 . 사례 정규화 :

다른 일반 구문 구성 요소는 체계에 의해 특별히 정의되지 않은 경우 대소 문자를 구분하는 것으로 간주됩니다

HTTP URI 경로의 대문자가 일부 사용자에게 문제가되면 Wikipedia가 손상 될 수 있습니다. 이 두 HTTP URI (소문자 o와 대문자 만 O다름)는 다른 페이지로 이어집니다.

그래서, 당신은하지 않습니다 이없는 당신의 URI를 변경할 수 있습니다.

그러나, (당신이 위키 백과처럼 케이스를 사용하지 않는 경우) 가능하다면, 좋은 방법이 될 것입니다 수 있도록 모든 케이스가 변형 및 정규 변형에 301 리디렉션.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.