2012-03-01 6 views
2

소문자와 대문자를 사용하는 URL 단축키를 쓰고 있습니다..htaccess와 href는 대문자와 소문자 기호로 연결됩니다.

필자는 분석에 도움이되는 중간 스크립트를 작성했습니다. 이것은 htaccess로에 : // WWW :

RewriteCond %{HTTP_HOST} q.(.{5})\.example.com 
RewriteRule (.*) http://www.example.com/this/r/%1 

그러나 사용자가 q.Fbbbc.example.com을로 이동 어떻게 든 경우 그는 HTTP에서 끝

를 (URL의는 당연히 변경). example.com/this/fbbbc (소문자 F 사용)

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까? 내 일부 클라이언트가 이미 문제가 발생하고 있습니다.이 규칙이 소문자로 변환되지 않을 것이라고 생각합니다.

관련 문제 : 프론트 엔드에서 사용자가 기능을 테스트하게하려면 기본 <a href="http://q.Fbbbc.dim.io">click</a>을 사용해야하지만 Google 이 링크 위로 마우스를 가져 가면 소문자 URL이 표시됩니다. 크롬의 코드는 실제로 대문자 F를 보여 줍니까 ... 어떤 생각?

+0

더 나쁜 것은 무엇입니까? Bit.ly는 동일한 방법을 사용하지만 링크를 가리키면 실제로 대문자도 표시됩니다. – xaddict

+0

다시 작성하는 데는 문제가 없습니다. http://htaccess.madewithlove.be/ – scibuff

+0

예. 제가 잘못 했어요. 도메인 앞에 오는 캐릭터와 관련이있을 수 있습니까? – xaddict

답변

1

RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax을 읽을 수 있습니다. 특히 Section 3.2.2. - Host. 다음 진술을보실 수 있습니다 : The host subcomponent is case-insensitive.

짧은 : 'AA.ExAmPlE.Org' === 'aa.example.org'. 소문자는 표준화 된 형식입니다. 대문자 호스트 이름이 스크립트에 도달하면 (최소한) 브라우저, (b) 중간 프록시, (c) http 서버에 의존합니다. 적어도 두 가지 구성 요소는 절대 통제 할 수 없습니다.

대소 문자를 구분하려면 슬러그 (Fbbbc)를 경로 이름 http://q.example.org/Fbbbc으로 옮겨야합니다.

+0

예 그랬습니다 :) 사건에 대해 알게 되 자마자. 설명 주셔서 감사합니다! – xaddict

1

첫 번째 슬래시가 소문자로 간주되기 전에 URL에있는 서비스 제공 업체와 모든 대화를 들었습니다. 이렇게하면 apple.com이 등록 될 때 APPLE.com을 등록 할 수 없습니다. 하위 도메인에도 동일하게 적용됩니다. WWW.example.com은 www.example.com과 정확히 동일합니다. 학습 교훈!

+0

그건 완전히 사실이 아닙니다. 호스트 이름은 소문자로 간주됩니다. 권한의 userinfo 구성 요소는 대소 문자를 구분합니다. – rodneyrehm

+0

이 경우 userinfo 구성 요소는 무엇입니까? 요약은 http (s)입니다 : //aaa.bbb.ccc/xxx 여기서 a, b 및 c는 소문자 여야하며 x는 둘 다 될 수 있습니다. – xaddict

+0

예제에 userinfo 구성 요소가 없습니다. 'foo : // a : b @ example.org'는 userinfo'a : b @'를 포함합니다. – rodneyrehm

관련 문제