아파치 mod_rewrite 에 대해 자세히 아시는 분 댓글좀......

mclljr의 이미지

아파치와 톰캣으로 연동중입니다...>.< 뭐, 로드밸런스도 있구해서요. 얼마나 몰릴지는 모르겠찌만;;
여하튼, 각설하구요.

보통 80 포트로 서비스를 하게 되는데, 이때 아파치가 서블랫처리만 톰캣으루 넘깁니다.
설정이 이렇게 되어있어요.

[httpd.conf]
RewriteEngine   On
RewriteLog      /usr/local/tomcat/rewrite.log
RewriteLogLevel 9
 
#RewriteCond    %{REQUEST_URI} (\A/[^/]+)(/images)
RewriteRule     (/OLIVE_POINT)(/images)(/.+[\.png|\.jpg|\.gif]\Z) $2$3
RewriteRule     (/OLIVE_POINT)(/images)(/.+[\.png|\.jpg|\.gif])(;jsessionid=.+\Z) $2$3$4

페이지에서 img 태그 src가 /OLIVE_POINT/images 로 시작하는 것들은 다 지우고, /images 부터 오도록 했어요. 그런데... 로그를 보니깐 분명히 적용되어있는데, 실제 페이지에서 보면 404에러가 떠요.*페이지에 뜬다는게 아니구, 크롬에서 보면 리소스 못 읽은 항목에 404나오잖아요...

이건, 아파치 mod_rewrite 로그내용이구요.

xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (2) init rewrite engine with requested uri /
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (3) applying pattern '(/OLIVE_POINT)(/images)(/.+[\.png|\.jpg|\.gif]\Z)' to uri '/'
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (3) applying pattern '(/OLIVE_POINT)(/images)(/.+[\.png|\.jpg|\.gif])(;jsessionid=.+\Z)' to uri '/'
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (1) pass through /
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (2) init rewrite engine with requested uri /OLIVE_POINT/contents/javax.faces.resource/jsf.js
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (3) applying pattern '(/OLIVE_POINT)(/images)(/.+[\.png|\.jpg|\.gif]\Z)' to uri '/OLIVE_POINT/contents/javax.faces.resource/jsf.js'
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (2) init rewrite engine with requested uri /OLIVE_POINT/images/jp_btn_login.png;jsessionid=1FD1490D22CAC55A8B32DCB421DB1FEF
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (3) applying pattern '(/OLIVE_POINT)(/images)(/.+[\.png|\.jpg|\.gif])(;jsessionid=.+\Z)' to uri '/OLIVE_POINT/contents/javax.faces.resource/jsf.js'
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (3) applying pattern '(/OLIVE_POINT)(/images)(/.+[\.png|\.jpg|\.gif]\Z)' to uri '/OLIVE_POINT/images/jp_btn_login.png;jsessionid=1FD1490D22CAC55A8B32DCB421DB1FEF'
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (1) pass through /OLIVE_POINT/contents/javax.faces.resource/jsf.js
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (3) applying pattern '(/OLIVE_POINT)(/images)(/.+[\.png|\.jpg|\.gif])(;jsessionid=.+\Z)' to uri '/OLIVE_POINT/images/jp_btn_login.png;jsessionid=1FD1490D22CAC55A8B32DCB421DB1FEF'
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (2) rewrite '/OLIVE_POINT/images/jp_btn_login.png;jsessionid=1FD1490D22CAC55A8B32DCB421DB1FEF' -> '/images/jp_btn_login.png;jsessionid=1FD1490D22CAC55A8B32DCB421DB1FEF'
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (2) local path result: /images/jp_btn_login.png;jsessionid=1FD1490D22CAC55A8B32DCB421DB1FEF
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (2) prefixed with document_root to /var/www/html/images/jp_btn_login.png;jsessionid=1FD1490D22CAC55A8B32DCB421DB1FEF
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (1) go-ahead with /var/www/html/images/jp_btn_login.png;jsessionid=1FD1490D22CAC55A8B32DCB421DB1FEF [OK]
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (2) init rewrite engine with requested uri /OLIVE_POINT/images/jp_btn_login.png;jsessionid=1FD1490D22CAC55A8B32DCB421DB1FEF
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (3) applying pattern '(/OLIVE_POINT)(/images)(/.+[\.png|\.jpg|\.gif]\Z)' to uri '/OLIVE_POINT/images/jp_btn_login.png;jsessionid=1FD1490D22CAC55A8B32DCB421DB1FEF'
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (3) applying pattern '(/OLIVE_POINT)(/images)(/.+[\.png|\.jpg|\.gif])(;jsessionid=.+\Z)' to uri '/OLIVE_POINT/images/jp_btn_login.png;jsessionid=1FD1490D22CAC55A8B32DCB421DB1FEF'
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (2) rewrite '/OLIVE_POINT/images/jp_btn_login.png;jsessionid=1FD1490D22CAC55A8B32DCB421DB1FEF' -> '/images/jp_btn_login.png;jsessionid=1FD1490D22CAC55A8B32DCB421DB1FEF'
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (2) local path result: /images/jp_btn_login.png;jsessionid=1FD1490D22CAC55A8B32DCB421DB1FEF
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (2) prefixed with document_root to /var/www/html/images/jp_btn_login.png;jsessionid=1FD1490D22CAC55A8B32DCB421DB1FEF
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (1) go-ahead with /var/www/html/images/jp_btn_login.png;jsessionid=1FD1490D22CAC55A8B32DCB421DB1FEF [OK]
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (2) init rewrite engine with requested uri /favicon.ico
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (3) applying pattern '(/OLIVE_POINT)(/images)(/.+[\.png|\.jpg|\.gif]\Z)' to uri '/favicon.ico'
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (3) applying pattern '(/OLIVE_POINT)(/images)(/.+[\.png|\.jpg|\.gif])(;jsessionid=.+\Z)' to uri '/favicon.ico'
xxx - - [16/Jul/2011:20:34:05 +0900] [xxx/sid#82304b8][rid#8527948/initial] (1) pass through /favicon.ico

원래 적용안되는 건가요?? 처음 이런짓 해보는데, 처음이 역시 어렵네요... 해보신 분들에게 그림의 떡일거 같은데 ㅠ.ㅠ

그리고, jsf 로 개발해서 폼이 리로딩되거나 서버코드에서 리다이렉트 시키면 /OLIVE_POINT/contents 가 딸려오는데 이것도 어떡해 처리 못하나요? 원래 이거 없애려고

[proxy_ajp.conf]
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
 
ProxyPreserveHost On
ProxyPass /  ajp://localhost:8009/OLIVE_POINT/contents/

이렇게 해뒀는데, http://domain.info/
까지만 정상일 뿐이네요.ㅠ.ㅠ

로그인 클릭하거나, 폼이 재전송되거나 하면, http://domain.info/OLIVE_POINT/contents/xxx.jsp 꼴이 되버려요 ㅠ.ㅠ
패스 설정이 너무 복잡;;; 톰캣으로만 서비스하면좋겠지만, 그렇게는 안되니..>.<

이미지는 아파치 폴더로 넣어버릴까도 생각중.. -ㅅ-;; 그럼 업데이트때마다 복사해야되나 -ㅅ-;;

도움의 댓글을 부탁하구,즐거운 주말되세요!

File attachments: 
첨부파일 크기
Image icon 1.jpg32.47 KB
sisuc의 이미지

자세히는 모르지만 혹시나 해서 올려봅니다.

httpd.conf 에서

Options FollowSymLinks AllowOverride none

none로 되어 있으면 All로 바꿔보세요.

(참고로 '그림의 떡' 은 불가능함을 표현하는 의미로 알고 있습니다.)

위대한 한글

mclljr의 이미지

댓글 감사해요.

음, 저 부분은 이미 설정으로 All 이 되어있구요....
그래서, 저 부분은 아닌거 같아요..ㅠ.ㅠ

참고로,

http://domain.com/
http://domain.com

으로 들어오는 경로는,

http://domain.com/xxx/
로 변경하고 싶어서,

RewriteCond %{HTTP_HOST} ^http://domain.com
RewriteRule ^(.*)$ http://domain./xxx/$1[R,L]

게 적용해봤는데, 작동은 합니다만,,,(뒤 주소는 유지)

무수히 많은 /xxx/가 붙어버렸습니다.. 왜 이럴까요??

인생 머 있니? 왜 그렇게 심각한데?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.