.htaccess: SEO를 위한 완벽 가이드

.htaccess: SEO를 위한 완벽 가이드
David Kaufmann
SEO 튜토리얼
13 min read

SEO에서는 개발자에게 원하는 바를 전달하고 프로젝트의 구현이 성공적으로 이루어지도록 특정 디렉티브를 관리하는 방법을 배워야 합니다.

그렇다고 했을 때, 많은 웹사이트가 가장 일반적인 디렉티브를 .htaccess 파일을 통해 관리합니다. 이 파일에 대해 좀 더 자세히 알고 검색 엔진을 위한 최적화의 베스트 트릭을 배우고 싶다면 계속 읽어보시기 바랍니다.

.htaccess 파일이란 무엇입니까?

.htaccess 파일은 Hypertext Access의 약자입니다. 이는 Apache 서버의 디렉터리 구성 파일에서 이름을 따온 하이퍼텍스트 접근 파일이며, 서버의 주요 디렉티브를 모으는 데 사용됩니다.

이름이 "."으로 시작하는 것은 Unix 시스템 때문이며, 이러한 파일은 숨김 파일로 식별됩니다. 그렇기 때문에 Windows에서 이름을 변경할 때 문제를 피하기 위해 주의를 기울여야 합니다.

이 파일은 로컬에서 생성되어 텍스트 형식(.txt)으로 저장되며 — Word 형식은 절대 안 됩니다 — FTP를 통해 서버에 업로드되어 사용해야 하는 폴더에 배치됩니다.

어떻게 작동합니까?

이 파일의 동작과 모든 특수성을 고려해야 합니다:

  • 이 파일의 동작은 웹사이트 디렉터리 트리 전반에 걸쳐 계층적이며, 이는 사이트의 루트 디렉터리에 파일이 있으면 디렉티브가 모든 폴더에 영향을 미친다는 것을 의미합니다. 따라서 단일 htaccess 파일이 있는 것은 아니며, 필요한 경우 디렉터리당 하나씩 있을 수 있습니다.
  • 사용자가 웹 페이지에 접근할 때마다 서버는 이러한 문서와 그 안에 포함된 디렉티브를 스캔합니다. 따라서 사고를 방지하기 위해 완벽하게 구성되고 오류가 없도록 하는 것이 필수적입니다.
  • 변경하기 전에 반드시 .htaccess 문서 사본에서 작업해야 합니다. 잘못 편집하면 나중에 문제가 발생할 수 있기 때문입니다.
  • 파일의 주석은 항상 **해시 "#"**로 시작합니다.

SEO를 위해 htaccess 파일을 어떻게 최적화합니까?

특정 디렉티브를 통해 서버에 무엇을 요청할지 지정할 수 있으며, 이를 통해 다양한 영역을 최적화할 수 있습니다. htaccess에서 우리는 다음을 할 수 있습니다:

서브도메인을 서브폴더로 리다이렉트

서브도메인을 제거하고 도메인 폴더의 일부로 만들어야 할 때 매우 유용합니다. 예: hola.example.com을 www.example.com/hola로 리다이렉트.

301 및 302 리다이렉트

이 파일에는 이전 URL과 리다이렉트할 URL이 포함됩니다.

File redirection

Redirect /old-page.html https://www.new-page.html

비밀번호 보호

웹사이트의 특정 영역은 비밀번호로 보호할 수 있습니다:

Simple password protection via .htaccess

AuthType Basic AuthName "Protected area" AuthUserFile /<absolute path to password file>/.htpasswd AuthPGAuthoritative Off require user User1 User2 User3

폴더 접근 제어

디렉티브를 통해 특정 폴더에 대한 모든 사용자의 접근을 관리하거나(거부 또는 허용) 특정 IP를 통해 관리할 수 있습니다:

File for IP access regulation

Order deny,allow Deny from .aol.com Deny from 192.168 Allow from 192.168.220.102

메인 도메인 지정

domain.com 또는 www.domain.com에 대한 301 리다이렉트 규칙 사용

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.

RewriteCond %{HTTPS}s ^on(s)|off

RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www.)?(.+)$

RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L]

보안 버전으로 리다이렉트

웹사이트를 보안 프로토콜로 리다이렉트:

httpsRewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

기본 페이지 변경

일부 웹사이트에서는 기본 페이지 이름이 /index인데 이는 SEO 친화적이지 않습니다. 표시되지 않도록 변경할 수 있습니다.

DirectoryIndex example-page.php

PHP 메모리 한도 증가

PHP 애플리케이션 사용에는 일정한 한도가 있습니다. 스크립트가 서버의 메모리를 차지하기 때문입니다. 다음 명령을 사용하여 용량을 늘릴 수 있습니다:

PHP Memory Limit

php_value memory_limit 128M

서버의 시간대 변경

다음 명령으로 올바른 시간대를 설정할 수 있습니다:

#Set the default time zone SetEnv TZ America / Washington

문서 인코딩

각 문서 유형에 대한 인코딩 유형을 지정할 수 있습니다. UTF-8 인코딩의 경우 다음 명령을 입력해야 합니다:

Specify character encoding

AddDefaultCharset utf-8

웹사이트 캐싱 강제 적용

캐싱 빈도의 초 수를 변경하면 사용자가 방문할 때 페이지 로딩이 더 빨라집니다. 수정되지 않은 대부분의 요소가 이미 캐시되어 있기 때문입니다. 이는 주로 이미지 로딩을 개선하는 데 도움이 됩니다.

<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/gif A432000 ExpiresByType image/jpg A432000 ExpiresByType image/jpeg A432000 ExpiresByType image/png A432000 ExpiresByType image/ico A432000 ExpiresByType image/bmp A432000 ExpiresByType text/css A432000 ExpiresByType text/javascript A432000 ExpiresByType application/javascript A432000 ExpiresByType application/x-javascript A432000 </ifmodule>

404 오류 페이지 사용자 지정

사용자가 찾을 수 없는 페이지에 도달하여 이 오류가 발생하면 htaccess 파일은 최적화된 404 오류 페이지를 표시할 수 있습니다. 이러한 페이지는 가장 간과되는 페이지 중 하나이며, 사용자를 유지하느냐 떠나게 하느냐의 차이를 만들 수 있습니다.

Custom error message at local location

ErrorDocument 404 /access-path/404.html 보안

이 파일을 통해 특정 스팸 봇의 접근을 차단할 수 있습니다:

RewriteEngine on

RewriteCond %{HTTP_REFERER} buttons-for-website.com [NC,OR]

RewriteCond %{HTTP_REFERER} darodar.com [NC,OR]

핫링킹

핫링킹과 같은 비윤리적인 기법도 차단할 수 있습니다: 이 기법은 서버에 호스팅된 콘텐츠를 다른 웹사이트에서 표시하여, 방문자가 다른 사이트에 있더라도 그 콘텐츠(보통 동영상이나 사진)를 표시하는 부하를 본인의 서버가 떠안게 만드는 것입니다.

Prevent hotlinking

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://your-domain/.*$ [NC] [OR] RewriteCond %{HTTP_REFERER} !^http://www.your-domain/.*$ [NC] [OR] RewriteRule .*.(gif|GIF|jpg|JPG|bmp|BMP|wav|mp3|wmv|avi|mpeg)$ - [F]

친화적인 URL 생성

URL에서 기본 매개변수를 제거하고 더 친화적으로 보이도록 위장하여 검색 결과에서 더 잘 순위를 매기는 데 도움을 줄 수 있습니다. 예: https://www.example.com/index.php?parameter=blog는 https://www.example.com/blog로 보이는 것이 더 좋습니다.

RewriteEngine On

RewriteRule ^shop/([^/])/([^/])/$ /index.php?category=$1&product=$2 [L]

브라우징 개선을 위한 파일 압축

htaccess의 규칙을 통해 웹사이트의 js, css, html, 텍스트 파일을 압축하여 로딩 중 차지하는 공간을 줄일 수 있습니다. 이를 통해 모바일 사용자가 브라우징 중 데이터를 덜 소비할 수 있게 됩니다. SEO에 있어 WPO의 중요성을 기억합시다!

<ifmodule> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript </ifmodule>

Gzip 압축

서버에서 파일을 압축하여 더 빠른 다운로드를 달성하고 브라우징 품질을 개선합니다.

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html

파일 인덱싱 방지

robots.txt 파일에서 특정 URL이나 폴더를 차단했음에도 불구하고 Google이 여전히 인덱싱하는 경우가 있을 수 있습니다. 다음 명령을 입력하면 완전한 차단이 가능합니다:

<Files ~ «.pdf$»>

Header set X-Robots-Tag «noindex, follow»

</Files>

Keep-Alive 활성화

이를 활성화하면 페이지가 로드될 때마다 연결을 시작하는 대신 서버에 지속적인 연결을 유지할 수 있습니다. keep-alive를 통해 웹사이트의 빠른 다운로드를 보장합니다.

<ifModule mod_headers.c> Header set Connection keep-alive </ifModule> 이제 htaccess 파일로 가능한 모든 것을 보았으니, 자유롭게 구현할 수 있습니다. 이러한 규칙은 CMS로 WordPress를 사용하든, 자체 코드를 사용하든, 다른 시스템을 사용하든 유효합니다.

WordPress 프로젝트가 있다면 편집기에서 직접 htaccess 파일을 편집할 수 있기 때문에 작업이 더 간단해질 것입니다. 그렇다고 해도 이것은 단순한 플러그인이 아니며 사이트를 망가뜨리기가 매우 쉬우니 매우 조심하세요! 어떻게 하는지 알려드리겠습니다!

WordPress에서 htaccess 파일 편집

WordPress를 사용하는 경우, 쉽고 빠르게 편집할 수 있는 Rank Math 플러그인 설치를 권장합니다.

Rank Math > General Settings > Edit .htaccess로 이동하기만 하면 됩니다.

Htaccess 파일 WordPress
Htaccess 파일 WordPress

WordPress에서 htaccess 파일을 편집하는 것은 매우 간단하지만 주의해야 한다는 점을 기억하세요!

아직 질문이 있으신가요? 댓글을 남겨주시면 기꺼이 살펴보겠습니다!

참고 자료:

- CDmon: .htaccess 파일에 대한 정보 및 사용법 - Computerhoy: .htaccess란 무엇이며, 무엇에 사용되며, 기본 코드 - Ionos: 누구나 알아야 할 .htaccess 구성을 위한 10가지 트릭 - HelpOne: .htaccess란 무엇입니까? - Hostinger: .htaccess 파일이란 무엇입니까?

저자: David Kaufmann

David Kaufmann

지난 10년 넘게 SEO에 완전히 빠져 살아왔습니다 — 솔직히 다른 길을 가고 싶지도 않았어요.

제 커리어가 한 단계 도약한 것은 인터넷 전체에서 방문자가 가장 많은 100개 사이트 중 하나인 Chess.com에서 시니어 SEO 스페셜리스트로 일했을 때입니다. 수백만 페이지, 수십 개 언어, 그리고 가장 경쟁이 치열한 SERP 중 하나에서 일한 경험은 어떤 강의나 자격증도 가르쳐주지 못하는 것들을 알려주었습니다. 이 경험은 진정으로 훌륭한 SEO가 어떤 모습이어야 하는지에 대한 제 관점을 완전히 바꾸어 놓았고, 이후 제가 만든 모든 것의 기초가 되었습니다.

이 경험을 바탕으로 SEO Alive를 창업했습니다 — 오가닉 성장에 진심인 브랜드를 위한 에이전시입니다. 우리는 대시보드와 월간 리포트를 파는 것이 목표가 아닙니다. 실제로 결과를 움직이는 전략을 만들어, 클래식 SEO의 최고와 흥미진진한 새로운 Generative Engine Optimization(GEO) 세계를 결합합니다 — 여러분의 브랜드가 Google의 파란 링크뿐 아니라 ChatGPT, Perplexity, Google AI Overviews가 매일 수백만 명에게 전달하는 AI 생성 답변 안에도 노출되도록 합니다.

그리고 이 두 세계를 제대로 다루는 도구를 찾을 수 없어서 직접 만들었습니다 — SEOcrawl입니다. 랭킹, 기술 감사, 백링크 모니터링, 크롤 건전성, AI 브랜드 가시성 추적을 한 곳에서 통합하는 엔터프라이즈 SEO 인텔리전스 플랫폼이죠. 항상 존재하기를 바랐던 바로 그 플랫폼입니다.

→ David님의 모든 글 읽기
더 많은 글: David Kaufmann

이 저자의 더 많은 콘텐츠를 만나보세요