Posted on 2008/09/08 16:20
Filed Under [1] IT 관련/2. Linux

휴가철인데 다들 잘 쉬었다 오셨는지요. ^^;

많은 분들이 http://xx.xx.xx.xx/domain 와 같은 페이지가 열리지 않고 http://xx.xx.xx.xx/domain/ 을 해야 열리는 경우가 발생된 적이 있을 것입니다.

이는 CanonicalName이 켜져 있어서 페이지가 열리지 않는 것이므로 아파치 설정에서
수정을 해 주어야 합니다.

httpd.conf 안에 "UseCanonicalName On" 부분은 "UseCanonicalName Off"로 변경
해주게 되면 정상적으로 페이지가 열릴 것입니다.


2008/09/08 16:20 2008/09/08 16:20

Posted on 2008/09/08 12:52
Filed Under [1] IT 관련/2. Linux

다음 방법은 아래 제가 올려 놓은 "아파치 웹서버 사용 시 무단 링크 방지법" 에서 약간의 문제점이 있어 또 다른 방법을 올려 놓습니다.

그러니까 아래 "아파치 웹서버 사용 시 무단 링크 방지법"은 홈페이지 첫 화면에서 쿠키를 생성하고, 그 쿠키값을 체크한 후에 링크 허용 유무를 결정 합니다.

하지만 링크를 허용하지 않을 파일 확장자가 이미지 이거나, 음악 파일이고 홈페이지 첫 화면에서 이미지 혹은 음악을 올려 놓았을 경우, 쿠키값이 없기 때문에 (다들 아시겠지만 쿠키는 생성하고 난 후에 바로 사용을 하지 못하고 새로고침을 해야만이 사용할 수 있기 때문에 홈페이지 첫 화면에 올려 놓은 이미지 혹은 음악 파일은 보여주지 못하거나, 재생하지 못합니다.)

따라서 아래 방법은 쿠키 값을 체크하는 것이 아니라 현재 접속한 도메인을 체크해서 서버 관리자가 정해준 도메인명과 일치했을 경우, 링크를 허용하는 방법입니다. ^^

역시 아파치 웹서버 환경설정 파일인 "httpd.conf" 파일을 찾아서 메모장으로 열고, 다음 소스를 추가한 후 아파치 웹서버를 재실행 하시면 됩니다.


Options FollowSymLinks
AllowOverride None


SetEnvIF Referer "http://daum.net" pass // 도메인명을 코딩합니다. (즉, 설정한 도메인명과 현재 접속한 도메인명이 같을 경우 pass 를 반환합니다.)


// 무단 링크 방지할 파일 확장자를 코딩합니다.

Order deny,allow
deny from all
allow from env=pass // pass 값이 존재할 경우 링크를 허용합니다.



다음 방법은 아래 제가 올려 놓은 "아파치 웹서버 사용 시 무단 링크 방지법" 에서 약간의 문제점이 있어 또 다른 방법을 올려 놓습니다.

그러니까 아래 "아파치 웹서버 사용 시 무단 링크 방지법"은 홈페이지 첫 화면에서 쿠키를 생성하고, 그 쿠키값을 체크한 후에 링크 허용 유무를 결정 합니다.

하지만 링크를 허용하지 않을 파일 확장자가 이미지 이거나, 음악 파일이고 홈페이지 첫 화면에서 이미지 혹은 음악을 올려 놓았을 경우, 쿠키값이 없기 때문에 (다들 아시겠지만 쿠키는 생성하고 난 후에 바로 사용을 하지 못하고 새로고침을 해야만이 사용할 수 있기 때문에 홈페이지 첫 화면에 올려 놓은 이미지 혹은 음악 파일은 보여주지 못하거나, 재생하지 못합니다.)

따라서 아래 방법은 쿠키 값을 체크하는 것이 아니라 현재 접속한 도메인을 체크해서 서버 관리자가 정해준 도메인명과 일치했을 경우, 링크를 허용하는 방법입니다. ^^

역시 아파치 웹서버 환경설정 파일인 "httpd.conf" 파일을 찾아서 메모장으로 열고, 다음 소스를 추가한 후 아파치 웹서버를 재실행 하시면 됩니다.


Options FollowSymLinks
AllowOverride None


SetEnvIF Referer "http://daum.net" pass // 도메인명을 코딩합니다. (즉, 설정한 도메인명과 현재 접속한 도메인명이 같을 경우 pass 를 반환합니다.)


// 무단 링크 방지할 파일 확장자를 코딩합니다.

Order deny,allow
deny from all
allow from env=pass // pass 값이 존재할 경우 링크를 허용합니다.

추가된 내용:

쾌변님 SetEnvIF Referer "http://daum.net | http://yahoo.com" pass -> SetEnvIF Referer "http://daum.net|http://yahoo.com" pass 이렇게 코딩하시면 됩니다. 즉, 도메인과 "|" 사이를 붙여서 코딩하시면 됩니다.

따옴표 안은 정규식입니다.
"^http://(www.)?daum.net" 이런식이 되어야 할것 같네요.
맨앞에 ^가 없으면
http://nanum.net/?d=http://daum.net
이런주소도 허용될겁니다.

#RewriteEngine on
#RewriteCond %{HTTP_REFERER} !^http://-_-.com/.*$ [NC]
#RewriteCond %{HTTP_REFERER} !^http://www.-_-.com/.*$ [NC]
#RewriteRule .*\.(.*)$ http://-_-.com [R,NC]

env는 어려워ㅠㅠ 호스팅 사용자는 .htaccess ↑

# 깜박하고 주석 제거를 안했다-_- 앞에 #는 없에시길 env대신 rewrite모듈인가 그거 사용-_-
2008/09/08 12:52 2008/09/08 12:52

Posted on 2008/09/08 12:49
Filed Under [1] IT 관련/2. Linux

많은 홈페이지들이 www.domain.com이나 domain.com만을 사용하고 있습니다.
허나 포워딩을 이용하여 여러가지 서브 도메인을 사용할 수 있습니다.

DocumentRoot /home/aaa/html
ServerName aaa.com
ServerAlias *.aaa.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.aaa\.com$
RewriteRule ^(.+)$ %{HTTP_HOST}$1 [C]
RewriteRule ^(.+)\.aaa\.com(.*) /home/aaa/html$2
RewriteCond %{HTTP_HOST} !^www\.aaa\.com$
RewriteCond %{HTTP_HOST} ^[^.]+\.aaa\.com$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+)\.aaa\.com(.*) /home/aaa/html/sub_domain/$1$2
CustomLog logs/access_log combined env=!CodeRed

위와 같이 할 경우 asf.aaa.com과 같은 디렉토리는 home/aaa/html/sub_domain안에 서브디렉토리로
들어가게 됩니다. 이는 아파치 설정파일에서 rewrite 파일로 설정하거나 혹은 .htaccess 파일로
수정을 하실 수 있습니다.

2008/09/08 12:49 2008/09/08 12:49

About

by Jaehun

Counter

· Total
: 51563
· Today
: 85
· Yesterday
: 106