본문 바로가기

[+] Information/[-] System

.htaccess 가지고 놀기

웹호스팅을 받을 경우,
아파치 설정을 직접 수정할 수 없어 불편한점이 이만저만이 아니다.
이것들을, 완벽하게는 못하지만 어느정도 htaccess를 가지고 해결할 수 있다.
자 그럼 시작.!


들어가기에 앞서, httpd.conf 에서 해당 경로에 Directory 지시자로,
AllowOverride All을 설정해주어야 한다.
AllowOverride가 All 이 아닐경우 몇가지 설정을 변경하는데 제약사항이 있다.


1. 먼저 Application Type 추가 해주기.

AddType application/x-httpd-php .php ..htm .html .shtml .inc .do



2. DirectoryIndex 바꿔주기.

DirectoryIndex index.do index.html index.php index.shtml index.htm Default.htm Default.html



3. 웹사이트 기본 Charset 바꿔주기.

AddDefaultCharset UTF-8



4. 오류 페이지 바꿔주기

ErrorDocument 400 http://error.umttumt.org/400.html
ErrorDocument 401 http://error.umttumt.org/401.html
ErrorDocument 403 http://error.umttumt.org/403.html
ErrorDocument 404 http://error.umttumt.org/404.html
ErrorDocument 500 http://error.umttumt.org/500.html



5, ServerSignature 바꾸고, ServerAdmin 메일주소 바꾸기.

ServerSignature Off
# 또는 ServerSignature EMail
SetEnv SERVER_ADMIN webmaster@umttumt.org
# 기본은 httpd.conf 에 설정되어있다.



6. blog.umttumt.org로 접속했을때, www.umttumt.org/blog를 보여주고 blog.umttumt.org가 실제 주소인것처럼 보이도록 하기.

RewriteEngine On
RewriteBase /
RewriteCond $1 !^(blog)/
RewriteCond %{HTTP_HOST} ^blog\.umttumt\.org [NC]
RewriteRule ^(.*)$ /blog/$1 [L]



7. wiki.umttumt.org로 접속했을때 www.umttumt.org/wiki를 보여주고 wiki.umttumt.org가 실제 주소인것처럼 보이도록 하기.

RewriteCond $1 !^(wiki)/
RewriteCond %{HTTP_HOST} ^wiki\.umttumt\.org [NC]
RewriteRule ^(.*)$ /wiki/$1 [L]
# 이 설정은 위 6번 에서 RewriteEngine와 RewriteBase를 설정 해줬기 때문에 해당 지시자들을 건너뛴다.



8. naver.umttumt.org로 접속했을때 www.naver.com으로 완전히 URL을 이동시키기.

RewriteCond %{http_host} ^naver\.umttumt\.org [NC]
RewriteRule ^(.*)$ http://www.naver.com/$1 [R=301,NC]
# 이 설정도 위  6번에서 RewriteEngine을 On으로 했기때문에 해당 지시자를 건더 뛴다.



9. 실존하지 않는 IP주소로 부터 요청이 왔을때 403 보여주기, 봇 차단하기, 검색엔진을 통한 유입 차단하기.

SetEnvIfNoCase remote_addr 10.0 bad_request
SetEnvIfNoCase remote_addr 127.0 bad_request
SetEnvIfNoCase remote_addr 172.16 bad_request
SetEnvIfNoCase remote_addr 172.17 bad_request
SetEnvIfNoCase remote_addr 172.18 bad_request
SetEnvIfNoCase remote_addr 172.19 bad_request
SetEnvIfNoCase remote_addr 172.20 bad_request
SetEnvIfNoCase remote_addr 172.21 bad_request
SetEnvIfNoCase remote_addr 172.22 bad_request
SetEnvIfNoCase remote_addr 172.23 bad_request
SetEnvIfNoCase remote_addr 172.24 bad_request
SetEnvIfNoCase remote_addr 172.25 bad_request
SetEnvIfNoCase remote_addr 172.26 bad_request
SetEnvIfNoCase remote_addr 172.27 bad_request
SetEnvIfNoCase remote_addr 172.28 bad_request
SetEnvIfNoCase remote_addr 172.29 bad_request
SetEnvIfNoCase remote_addr 172.30 bad_request
SetEnvIfNoCase remote_addr 172.31 bad_request
SetEnvIfNoCase remote_addr 192.168 bad_request
SetEnvIfNoCase remote_addr 169.254 bad_request

SetEnvIfNoCase Referer "blog" bad_request
SetEnvIfNoCase Referer "google" bad_request
SetEnvIfNoCase Referer "tistory" bad_request
SetEnvIfNoCase Referer "naver" bad_request
SetEnvIfNoCase Referer "daum" bad_request
SetEnvIfNoCase Referer "yahoo" bad_request

SetEnvIfNoCase User-Agent "Allblog.net RssSync4 (I Love Bluecat)" bad_request
SetEnvIfNoCase User-Agent "MHzXFyder[OPENBLOG]" bad_request
SetEnvIfNoCase User-Agent "UniversalFeedParser" bad_request
SetEnvIfNoCase User-Agent "^Wget" bad_request
SetEnvIfNoCase User-Agent "^Webzip" bad_request
SetEnvIfNoCase User-Agent "^EmailSiphon" bad_request
SetEnvIfNoCase User-Agent "^EmailWolf" bad_request
SetEnvIfNoCase User-Agent "^BPImageWalker" bad_request

Deny from env=bad_request



10. Nimda 웜 차단하기.

Redirect /scripts http://error.umttumt.org
Redirect /MSADC http://error.umttumt.org
Redirect /c http://error.umttumt.org
Redirect /d http://error.umttumt.org
Redirect /_mem_bin http://error.umttumt.org
Redirect /msadc http://error.umttumt.org
RedirectMatch (.*)\cmd.exe$ http://error.umttumt.org



11. 외부링크 차단하기. (트래픽 감소효과)

SetEnvIFNoCase Referer "umttumt.org" pass

<FilesMatch ".(gif|jpg|png|bmp|zip|tar|rar|alz|a00|ace|jpg|jpeg|txt|GIF|JPG|BMP|ZIP|TAR|RAR|ALZ|A00|ACE|TXT|mp3|MP3|mpeg|MPEG|wav|WAV|asf|ASF|wmv|WMV|swf|SWF|exe|EXE)$">
    Order deny,allow
    deny from all
    allow from env=pass
</FilesMatch>

SetEnvIf Cookie link=ok true
<FilesMatch ".(mid|asf|wma|wmv|mp3|ogg|wav|mpg|mpeg|avi|zip|rar|pdf|exe)$">
    Order Deny,Allow
    Allow from env=true
    Deny from all
</FilesMatch>


출처 : http://umttumt.org/109

고대로 복사해 왔습니다.


'[+] Information > [-] System' 카테고리의 다른 글

Windows OS의 구조 및 원리 - 컴퓨터의 역사와 구조  (0) 2012.07.07
PE 돋보기??  (0) 2009.12.12
Zend Decoding  (8) 2009.10.04
메모리 구조 그림.  (2) 2009.09.27