대소문자를 구분하지 않는 파일 제공을 위한 httpd.conf

대소문자를 구분하지 않는 파일 제공을 위한 httpd.conf

저는 Apache 관리에 관한 완전한 초보자이므로, 뭔가 잘못 표현한 경우 양해해 주시기 바랍니다.

나는 웹사이트를 가지고 있습니다 http://domain.com. 예를 들어, . 문제는 웹 브라우저에서 열려고 하면 http://domain.com/index.html페이지가 표시되지만 액세스를 시도하면 http://domain.com/Index.html(대문자 I 참고) HTTP 404로 응답한다는 것입니다.

대소문자를 구분하지 않고 이러한 파일(및 디렉터리)을 모두 제공하도록 Apache를 어떻게 구성합니까? 현재 httpd.conf여기.

편집하다 댄 C, 힌트 주셔서 감사합니다. 나는 기본적으로 사용자가 내 서버에서 파일을 다운로드할 수 있도록 허용하고 싶지만 실제로 Index.htmlindex.html다르다는 사실을 인식하기를 원하지 않습니다 .

나는 또한 이 결정이 어떤 결과를 가져올지 알고 싶습니다.

답변1

가장 먼저 떠오르는 것은mod_rewrite, 이는 이미 구성에 로드되어 있습니다.

파일이 모두 소문자라고 가정합니다(위험한 가정일 수 있음).

RewriteEngine On

RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule ^(.*)$ ${tolower:$1} 

답변2

Linux 서버에서 Apache를 실행하는 경우 문제는 기본 Linux 대소문자 구분 파일 시스템을 사용한다는 것입니다. Matt가 언급한 대로 ReWrite를 볼 수 있습니다.

또 다른 옵션은 언급된 Apache용 mod_speling 모듈입니다(예, 하나의 L입니다).여기< 하지만 내 생각에는 철자 오류가 하나만 검색되고 한 디렉터리에 파일이 많으면 액세스 속도가 느려질 수도 있습니다.

도움이 되었기를 바랍니다

답변3

실제로 httpd.conf에서는 작동하지 않습니다. 말했듯이 문제는 현재 사용 중인 Linux 파일 시스템이 대소문자를 구분한다는 것입니다.

나는 확실히 작동하는 한 가지 방법을 알고 있습니다. 웹 응용 프로그램을 /opt/www/yourapplication에 넣으십시오.

그런 다음 localhost에 대해서만 /opt/www의 SMB 공유를 만듭니다.

그런 다음 Samba 공유를 /var/www에 마운트합니다.

Samba는 Windows 공유용이고 Windows 공유는 대소문자를 구분하지 않으므로 Samba가 대소문자 구분을 처리하여 내부적으로 모든 것을 LOWERCASE로 만듭니다.

관련 정보