웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
Apache .htaccess 작성요령
2013.09.19 08:04
RewriteEngine On #1. 리퍼러 차단 SetEnvIfNoCase Referer "fillbest|bestyahoogamers|pirst|getfiles" ban Deny from env=ban #2. 프록시 차단 RewriteCond %{HTTP:VIA} !^$ [OR] RewriteCond %{HTTP:FORWARDED} !^$ [OR] RewriteCond %{HTTP:USERAGENT_VIA} !^$ [OR] RewriteCond %{HTTP:X_FORWARDED_FOR} !^$ [OR] RewriteCond %{HTTP:PROXY_CONNECTION} !^$ [OR] RewriteCond %{HTTP:XPROXY_CONNECTION} !^$ [OR] RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR] RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$ RewriteRule ^(.*)$ - [F] #3. 디렉토리 브라우징 금지 Options All -Indexes #4. phpinfo 실행시 아이디/비밀번호 입력 <Files phpinfo.php> AuthName "phpinfo()" AuthType Basic AuthUserFile /path/to/.htpasswd Require valid-user </Files> #5. HTTP 오류시 해당 문서 보여줌 ErrorDocument 400 /errorpage/400.html ErrorDocument 401 /errorpage/401.html ErrorDocument 403 /errorpage/403.html ErrorDocument 404 /errorpage/404.html ErrorDocument 405 /errorpage/405.html ErrorDocument 500 /errorpage/500.html #6. 자동으로 www 붙이기 RewriteCond %{HTTP_HOST} ^domain.com [NC] RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301,NC] #7. 이미지 외부링크 제한 SetEnvIfNoCase Referer "^http://(.*).domain.com/" locally_linked=1 SetEnvIfNoCase Referer "^http://(.*).domain.com$" locally_linked=1 SetEnvIfNoCase Referer "^http://domain.com/" locally_linked=1 SetEnvIfNoCase Referer "^http://domain.com$" locally_linked=1 SetEnvIfNoCase Referer "^https://domain.com/" locally_linked=1 SetEnvIfNoCase Referer "^https://domain.com$" locally_linked=1 SetEnvIfNoCase Referer "^https://(.*).domain.com/" locally_linked=1 SetEnvIfNoCase Referer "^https://(.*).domain.com$" locally_linked=1 <FilesMatch ".(gif|GIF|jpg|JPG|bmp|BMP|png|PNG|psd|PSD|ai|AI|tif|TIF|tiff|TIFF|pcx|PCX|wmf|WMF|emf|EMF|css|CSS)$"> Order Allow,Deny Allow from env=locally_linked </FilesMatch> #이후는 XE 기본 Rewrite 기능, 이하 생략
1. 리퍼러 차단: 쓸데없는 스팸 리퍼러 등을 차단하여 로그에 기록되지 않게 합니다.
2. 프록시 차단: 이걸 쓰면 프록시 차단 애드온이 필요없습니다. (확인해보니 소스가 동일)
3. 디렉토리 브라우징 금지: 디렉토리 퍼미션이 777으로 되어있는 경우에도 안의 내용을 리스트로 볼 수 없게 합니다.
4. phpinfo 실행시 아이디/비밀번호 입력: HTTP Basic Authentication을 이용해서 phpinfo 파일을 보호합니다.
5. HTTP 오류시 해당 문서 보여줌: 모두 잘 아시는 ErrorDocument 기능입니다.
6. 자동으로 www 붙이기: 로그인이 풀리는 문제를 막아줍니다. 서버단에서 처리해주기 때문에 속도 저하가 없습니다.
7. 이미지 외부링크 제한: 내사이트를 제외한 다른 사이트에서 이미지를 무단으로 링크하는 것을 막아줍니다.
저는 일반적인 홈페이지에 사용되는 내용만 담은 것입니다. 저보다 더 좋은 htaccess를 만들려면 여기를 참고하세요.