2011-01-11 2 views
6

https://stackoverflow.com//////////questions/4659504/이 유효한 URL임을 확인했습니다. 그러나 https://www.google.com//////////analytics/settings은 그렇지 않습니다. 이것을 설명하는 웹 서버 기술에는 고유 한 차이점이 있습니까? 불필요한 슬래시가있는 URL을 올바르게 해석해야합니까? 아니면 오류를 반환해야합니까?URL에 불필요한 슬래시가 있습니까?

+0

죄송합니다. 잘못된 것으로 신고했습니다. 무시하십시오. – cybermonkey

답변

4

우선 슬래시를 추가하면 다른 문자와 마찬가지로 URL 경로의 의미가 변경됩니다. 따라서 /foo/bar/foo//bar/foo/bar과 동일하지 않으며 /foo/bar/은 동일하지 않습니다. /foo//bar/foo/bar이되도록

그러나 URL 경로가 주로 직접 파일 시스템에 매핑하는 데 사용되기 때문에, 웹 서버는 종종 빈 경로 세그먼트를 제거은 (아파치가 않습니다) 등가을 취급했다. 그러나 이것은 예상되는 행동이 아닙니다. 오히려 오류 수정을 위해 수행됩니다.

+0

같은 것을 제거하기위한 .htaccess 규칙을 제공 할 수 있습니까? – rahijain

+0

다음을 시도하십시오 :'RewriteCond % {REQUEST_URI}^(/ ([^? /] +))/+ (. *) RewriteRule^% 1 % 3 [L, R = 301]' – Gumbo

2

두 URL은 모두 유효한 URL입니다.
그러나 Google 서버는 두 번째 서버를 처리 할 수 ​​없습니다.

중복 된 슬래시가있는 URL을 처리하거나 거부 할 특별한 이유가 없습니다. 더 중요한 일에 더 많은 시간을 할애해야합니다.

+0

Google의 서버는 무엇을 할 수 없습니까? – Gumbo

+2

다음은 분명히 중요한 예입니다. http : //www.mydigitallife.info/2008/07/21/redirect-or-rewrite-to-remove-double-or-multiple-slashes-in-url/ –

+0

@ 검보 : 고정; 감사. – SLaks

0

모든 응용 프로그램에서 요청을 처리하는 방법에 차이가 있습니다. 요청을 라우팅하기 전에 다음 슬래시를 대체하도록 앱을 설정 한 경우 문제가 없어야합니다.

1

"올바르게 해석 된 것"은 무엇이라고 생각하십니까? HTTP는 실제로 서버 이름이 해석 된 후 슬래시 앞에있는 내용을 지정합니다. 나머지는 전적으로 웹 서버에 달려 있습니다. 그 시점 이후에 (원하는 방식으로) 그 내용을 파싱하고 그 텍스트를 제공하는 것과 같은 HTML을 제공합니다.

관련 문제