관리 메뉴

하츠의 꿈

Apache 302 error 원인과 해결방법 본문

엔지니어스 마인드/Linux&Unix

Apache 302 error 원인과 해결방법

명섭이 2010.03.29 13:23

Apache 302 error는 메뉴얼에 보면 Moved temporarily 이라고 되어 있다. 참 알기 어려운 암호같은 말... 한국말로 풀이해보면 임시로 옮겼다??  웹서버의 요청에 문제가 있어서 임시 URL로 옮겼다는 것 같다.

오늘 아파치에 새로운 도메인을 셋팅하고 난 후 웹브라우저에서 확인해보니, 약 1분 동안  해당 웹페이지를 계속 찾다가 멈춰버리는 오류가 발생했다.

아파치의 access_log 파일을 확인해보니 위와 같이 302 오류가 주루~룩 뜨는 것을 확인할 수 있었다. 즉, 웹서버가 뭔가 하려고 했는데 되지 않아 계속 찾다가 멈춰버리는 것이었다.

 

 

 

httpd.conf 파일의 내용

<VirtualHost *:80>
ServerAdmin info@xxxxx.com
ServerName xxxxx.co.kr
ServerAlias xxxxx.kr www.xxxxx.kr
RewriteEngine On
RewriteLogLevel 1
RewriteLog "/dev/null"
RewriteRule ^/(.*)$ http://www.xxxxx.co.kr/$1 [NC,L,R]
</VirtualHost>

<VirtualHost *:80>
ServerAdmin info@xxxxx.com
DocumentRoot /$WEBROOT/
ServerName www.bbb.co.kr
<Directory /$WEBROOT>
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
</VirtualHost>

첫번째 VirtualHost 내용은 xxxxx.co.kr, xxxxx.kr, www.xxxxx.kr 로 요청이 오면 Rewrite Rule 을 이용해서 www.xxxxx.co.kr 로 이동시키라는 것이다. Rewrite Rule을 이용하는 이유는 요청한 URL의 도메인 만 변경하고 나머지 부분은 그대로 옮겨가기 위해서이다.

그런데, 302 오류가 나는 것이고...

가만히 살펴보니 www.xxxxx.co.kr 가 있어야 할 아래의 VirtualHost 부분에 www.bbb.co.kr 로 되어 있던 것이다. VirtualHost 부분을 다른 곳에서 복사해서 붙여넣기 하다가 이 부분을 수정하기 않은 것이다.

 

Apache 302 error 는 웹서버 요청에 대응하는 설정이 잘못되었을 때 발생할 수 있는 오류이다. 다른 이유가 있을 수도 있겠지만 내가 아는 것 여기까지!  Rewrite Rule을 이용할 때는 잘 살펴봐야겠다~

 

 


5 Comments
  • 프로필사진 BlogIcon 최홍순 2011.01.16 16:02 신고 접근 오류로 뜹니다 해결좀 해주세요
  • 프로필사진 BlogIcon 명섭이 2011.01.21 00:03 신고 아무런 내용이 없어서 도움을 드리기가 어렵습니다.
    오류 내용을 알려주세요.
  • 프로필사진 BlogIcon 최홍순 2011.01.16 16:03 신고 이런경우 왜 그런지 도무지 모르겟어요?
    좀 알려주시고요 빨리좀 풀어주셔요
  • 프로필사진 BlogIcon Mr.Learn 2011.02.08 12:01 신고 안녕하세요.
    검색하다가 원하는 정보가 있나 들어왔다가 몇 자 남깁니다.^^

    favicon.ico에 302 코드는 오류라기 보다는 해당 콘텐츠의 주소를 임시적으로 표시하고 있다는 클라이언 요청에 대한 리디렉션 알림입니다.

    웹브라우저는 xxx.com/favicon.ico으로 접근을 했는데, RewriteRule로 인해서 yyy.com/favicon.icon으로 이동했다고 302 코드를 반환해 주고 있기 때문입니다.

    주소가 완전히 변경이 된 경우에는 RewriteRule에서 301 코드를 리턴하도록 해주어야 합니다. 302는 임시적으로 이동시켰다는 의미지요.

    위의 글을 읽어 보니까 xxxxx.kr과 www.xxxxx.kr의 방문자들을 xxxxx.co.kr로 리디렉션 하시는 모양인데, 이 경우는 RewriteRule에서 301 코드를 반환해 '영구 이전'이라는 코드가 반환되도록 해야만 완전하게 주소 이동으로 사이트가 통합이 되는 것입니다.

    "즉, 웹서버가 뭔가 하려고 했는데 되지 않아 계속 찾다가 멈춰버리는 것이었다."가 아니고, 귀하께서 RewriteRule을 잘못 설정해서 클라이언트에게 302 상태 코드를 주는 것입니다.^^
  • 프로필사진 BlogIcon 명섭이 2011.02.09 11:15 신고 좋은 지적 감사합니다.
    저도 설정을 잘못해서 그러한 일이 발생한다는 것을 말씀드렸던 것인데 표현에 문제가 있었습니다.
    깊이 있는 조언 감사합니다.
댓글쓰기 폼