[강남길]님이 남기신 글:
>
>RedirectMatch ^/([a-zA-Z0-9_-]+)$ /$1/
>요렇게 하면 되는군요..
>여기 게시판에서 찾았습니다. 감사합니다.
>[강남길]님이 남기신 글:
>
>>-----------------------------------------
>>답변자가 기본적으로 참고할 내용입니다.
>>- 데몬버전(예:apache 1.3.27) :
>>-----------------------------------------
>>http://123.123.123.123/test
>>로 찾을면 http://123.123.123.123/test/ 로 가게 하는 방법이 있습니까?
>>디렉토리는 존재하는데 자꾸 에러를 칩니다.
>
>========================================
아 그 결과는 같지만 위의 방법은 옳은 방법이 아닙니다.
여기 게시판에서 찾은 위의 답안은 URL 이동에 관한 내용입니다.
현재 질문한 내용과 비슷한 맥락을 가지고 있는지 옳은 답안이
아닙니다.
다음과 같이 설정하세요.
ServerName www.foo.com
ServerName 지시자를 각각 가상호스트 세션도 포함해서 반드시 설정하세요.
ServerName 은 UseCanonicalName 이 On 으로 설정되어 있을 경우에(기본값이 On)
301 또는 302 status code 에 대해서 ServerName 지사자로 설정한
호스트로 URL 이 이동됩니다.
예를 들어
ServerName www.foo.com
UseCanonicalName On
으로 설정되어 있고
GET http://123.123.123.123/somedir
이런식으로 www 도 없고, 마지막에 "/" 을 붙이지 않으면
아파치는 302 status code로 일단 응답합니다. 즉 /somedir 이 file 이면
파일로 처리하게 되지만, 파일이 아닌 디렉토리가 존재하면 302 stuaus 를
내게 됩니다.
아파이는 302 에 대해서 SeverName 에 설정한 호스트와 GET 의 URI 를
참조해서,
http://123.123.123.123/somedir
을
http://www.foo.com/somedir/
로 URL 을 이동하게 됩니다.
한가지 더 예를 들어 보면, 80 번 포트와 8080 포트 모두를 사용하는
경우도 있는데,
http://123.123.123.123:8080/somedir
도
http://www.foo.com/somedir/
이렇게 80 번 포트로 이동해 버립니다.
만약 방화벽에서 80 포트가 막혀 있다면 클라이언트는 전혀 그 결과값을
받지 못합니다.
이런 애로 사항을 없애기 위해서
ServerName www.foo.com
UseCanonicalName Off
로 설정해주는 것이 좋습니다.
이 경우는
ServerName 의 호스트를 참조하는 것이 아니라 클라이언트가
요청한 Host name 과 클라이언트가 요청한 포트를 참조해서
URL 을 이동합니다.
즉
http://www.foo.com/somedir
은
http://www.foo.com/somedir/
이렇게
http://www.foo.com:80/somedir
은
http://www.foo.com:80/somedir/
이렇게
http://www.foo.com:8080/somedir
은
http://www.foo.com:8080/somedir/
이렇게
http://foo.com:8080/somedir
은
http://foo.com:8080/somedir/
이렇게
http://123.123.123.123/somedir
은
http://123.123.123.123/somedir/
이렇게
http://123.123.123.123:80/somedir
은
http://123.123.123.123:80/somedir/
이렇게 이동합니다.
관련 내용은
http://linuxchannel.net/board/read.php?table=qna&no=4432 |