Apache를 사용하여 리디렉션된 URL(.jpg/ .htm/ .gif/)에서 후행 슬래시 제거

Apache를 사용하여 리디렉션된 URL(.jpg/ .htm/ .gif/)에서 후행 슬래시 제거

이전 호스트에서 리디렉션되는 웹사이트가 있습니다. 이전 호스트의 리디렉션을 변경할 수 없습니다.

문제는 리디렉션이 적절하지 않을 때 후행 슬래시를 추가한다는 것입니다. 예: http://example.com/picture.jpg/또는 http://example.com/page.html/.

이로 인해 내 서버가 404를 반환하게 됩니다.

이상적으로는 이전 사이트의 리디렉션을 수정하고 싶지만 그럴 수 없습니다.

URL 끝의 슬래시를 제거하는 방법이 있습니까? 이것은 복잡하지 않은 사이트입니다(간단한 HTML, 스크립트 언어 없음 등).

나는 보았지만 기존 솔루션을 찾을 수 없었습니다.

답변1

.jpg파일 확장자( , .html, .png등) 로 끝나는 URL에서 후행 슬래시를 제거하려면 다음과 같은 작업을 수행할 수 있습니다.

RewriteEngine On
RewriteRule ^/?(.+?\.[a-z]{2,4})/$ /$1 [R=302,L]

제대로 작동하는지 테스트한 후에만 302(임시)를 301(영구)로 변경하세요(캐싱 문제 방지).

업데이트:http는 https로 리디렉션되었고 https는 재미있는 후행 슬래시를 다시 썼습니다.

이러한 링크가 모두 HTTP(HTTPS 아님)에만 인바운드되는 경우 대신 HTTP vHost에서만 이 리디렉션을 수행하고 HTTPS로도 바로 리디렉션하는 것이 합리적입니다. 예를 들어:

RewriteRule ^/(.+?\.[a-z]{2,4})/$ https://example.com/$1 [R=302,L]

(허용되지만 HTTPS용 vHost에 있으면 모든 요청을 포착합니다.)

관련 정보