본문으로 건너뛰기
서버 & .htaccess

워드프레스 기본 .htaccess 파일: 코드와 복구 방법

워드프레스가 고유주소를 위해 작성하는 정확한 기본 .htaccess 코드, 각 줄의 역할, 게시물은 404인데 홈페이지는 열릴 때 파일을 복구하는 방법을 설명합니다.

게시됨

워드프레스의 기본 .htaccess 파일은 /2026/10/post-name/ 같은 고유주소가 404를 반환하지 않고 작동하도록, 소프트웨어가 사이트 루트의 .htaccess에 작성하는 짧은 RewriteEngine 블록입니다. 다음과 같은 형태입니다.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

이 규칙들은 워드프레스가 블록을 생성하는 코드에서 나온 것이며, 워드프레스 자체 .htaccess 가이드와 일치합니다. 워드프레스는 # BEGIN WordPress 바로 다음에 주석 세 줄도 작성하는데, 마커 사이를 수정하면 덮어쓰인다고 경고하는 내용입니다. 이 주석은 규칙의 작동 방식을 바꾸지 않습니다.

하위 폴더 설치에서는 워드프레스가 하위 폴더 경로를 RewriteBase와 마지막 규칙 모두에 넣습니다. 예를 들면 RewriteBase /blog/와 RewriteRule . /blog/index.php [L]입니다. 멀티사이트 네트워크는 다른 블록을 사용하며, 워드프레스는 이 경우 파일을 자동으로 작성하지 않습니다.

핵심 요약

  • 워드프레스는 쓰기 권한이 있고 기본 형식이 아닌 고유주소를 사용할 때 아파치와 LiteSpeed에서 이 블록을 생성합니다. 설정 > 고유주소를 여는 것만으로 충분합니다.
  • 파일이 누락되거나 손상되면 홈페이지는 로드되지만 고유주소는 404를 반환합니다. 홈페이지에는 rewrite 규칙이 필요 없기 때문입니다.
  • 직접 또는 플러그인이 추가하는 내용은 # BEGIN WordPress 위에 두고, 마커 안에는 절대 두지 마세요. 워드프레스는 파일을 업데이트할 때 그 사이의 모든 내용을 교체합니다.
Apache 터미널 출력. .htaccess 파일이 없으면 홈페이지는 200, 글 URL은 404를 반환하고, 기본 블록을 넣으면 둘 다 200을 반환한다
Apache 2.4.58의 실제 응답입니다. 파일이 없으면 홈페이지는 열리고 글 URL은 404를 반환합니다. 기본 블록을 넣으면 둘 다 200을 반환합니다. WordPress 대신 한 줄짜리 테스트용 index.php를 사용했습니다.

각 줄이 실제로 하는 일

RewriteEngine On은 이 디렉터리에 대해 아파치의 mod_rewrite 모듈을 켭니다. 이 줄이 없으면 아래의 rewrite 규칙은 아무 일도 하지 않습니다.

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]는 URL을 그대로 두고(-의 의미입니다) 요청의 Authorization 헤더를 서버 변수로 복사합니다. 워드프레스는 그 변수를 읽어 애플리케이션 비밀번호처럼 헤더로 전송된 사용자 이름과 비밀번호를 받습니다.

RewriteBase /는 아파치가 다시 쓴 URL에 사용하는 경로 접두사를 설정합니다. 워드프레스는 사이트 위치에 맞춰 이 값을 정하므로, 하위 폴더 설치에는 RewriteBase /blog/가 들어갑니다.

RewriteRule ^index\.php$ - [L]은 보호 장치입니다. 요청이 이미 index.php이면 다시 쓰기를 멈추고 요청을 그대로 통과시킵니다.

두 RewriteCond 줄이 실제 로직입니다. %{REQUEST_FILENAME} !-f와 !-d는 “이 요청이 실제 파일과 일치하지 않고, 실제 디렉터리와도 일치하지 않는가?”를 묻습니다. 마지막 규칙이 실행되려면 둘 다 참이어야 하므로, 실제 이미지, CSS 파일, 업로드된 PDF는 바로 제공되고 워드프레스의 라우팅을 거치지 않습니다.

RewriteRule . /index.php [L]이 고유주소를 작동하게 합니다. 두 조건을 통과한 모든 요청은 index.php로 전달되고, 워드프레스가 그 URL이 어떤 글, 페이지, 아카이브를 뜻하는지 결정합니다.

워드프레스가 이 파일을 다시 생성할 때와 하지 않을 때

워드프레스는 설정 > 고유주소 화면이 로드될 때마다 rewrite 규칙을 플러시하므로, 화면을 여는 것만으로 충분하고 변경사항 저장을 클릭할 필요가 없습니다. .htaccess가 없으면 폴더에 쓰기 권한이 있고 기본 형식이 아닌 고유주소를 사용하는 한 워드프레스가 파일을 만듭니다. 파일이 있고 쓰기 권한이 있으면 워드프레스는 마커 사이의 블록을 교체합니다.

다음 경우에는 그것으로 문제가 해결되지 않습니다.

  • 파일이나 폴더에 쓰기 권한이 없는 경우(PHP를 실행하는 사용자 기준). 화면에는 .htaccess 파일에 쓸 수 없다는 오류가 붙여넣을 규칙과 함께 표시됩니다. 일부 호스트에서는 PHP가 FTP 업로드 파일의 소유자와 다른 시스템 사용자로 실행되므로, FTP 클라이언트에서 문제없어 보이는 권한도 워드프레스를 막을 수 있습니다.
  • nginx를 사용하는 경우. 워드프레스의 nginx 가이드에 따르면 nginx에는 .htaccess 같은 디렉터리 수준 설정 파일이 없고, 워드프레스는 서버 설정을 변경할 수 없습니다. 이에 해당하는 라우팅은 서버 설정의 try_files 지시어이며, 관리자가 편집해야 합니다.
  • AllowOverride가 None으로 설정된 경우(아파치 기본 설정에서 사이트 디렉터리에 대해). 아파치 문서에는 이렇게 나와 있습니다: “This means .htaccess files are completely ignored unless you explicitly enable them for a directory.” 즉, 디렉터리에 대해 명시적으로 활성화하지 않으면 .htaccess 파일은 완전히 무시됩니다. 워드프레스가 완벽한 파일을 작성해도 아무 효과가 없습니다. rewrite 규칙에는 AllowOverride FileInfo(또는 All)가 필요하며, 호스트가 변경해야 할 수도 있습니다.
  • 고유주소가 기본으로 설정된 경우. 기본 형식의 URL에는 rewrite 규칙이 필요 없으므로 워드프레스가 파일을 만들지 않습니다.

수동으로 복구하는 방법

홈페이지는 작동하는데 글과 페이지가 404를 반환하면, 가장 먼저 .htaccess가 없거나 깨졌는지 확인하세요. 두 단계로 해결합니다.

1. 먼저 클릭 한 번으로 고치는 방법을 시도하세요. wp-admin에서 설정 > 고유주소를 연 다음, 아무것도 바꾸지 않고 변경사항 저장을 클릭합니다. 워드프레스가 파일에 쓸 수 있으면 이것으로 다시 생성됩니다. 쓸 수 없으면 화면에 오류와 필요한 규칙이 표시됩니다.

2. 그래도 해결되지 않으면 파일을 직접 만드세요. FTP/SFTP나 호스트의 파일 관리자로 접속해 사이트 루트 폴더로 이동합니다. 보통 wp-admin이 들어 있는 폴더입니다. .htaccess가 있는지 확인합니다. 점으로 시작하는 파일이라 일부 파일 관리자는 기본적으로 숨기므로 “숨김 파일 표시”를 켜세요.

  • 없으면 이름이 정확히 .htaccess인 새 파일을 만듭니다(.txt 없이, 점 앞에 아무것도 없이).
  • 워드프레스가 보여 준 규칙이나 이 가이드 맨 위의 기본 블록을 붙여넣습니다. 하위 폴더 설치에서는 RewriteBase와 마지막 규칙을 맞게 바꿉니다.
  • 저장한 다음 글의 고유주소를 다시 로드해 작동하는지 확인합니다.

그래도 404가 나오면 .htaccess가 무시되고 있을 수 있습니다. 호스트에 AllowOverride를 확인하세요. 이 설정이 꺼져 있으면 아파치는 올바른 파일도 무시합니다.

직접 추가한 규칙과 워드프레스 블록

플러그인이나 수동 편집으로 리디렉션, 핫링크 방지, 캐시 헤더 같은 자체 규칙이 추가될 수 있습니다. 이런 규칙은 워드프레스 블록 밖에, 그리고 그 위에 두어 워드프레스의 포괄 규칙보다 먼저 실행되게 하세요.

# Rules you or a plugin added: ABOVE the WordPress markers
<FilesMatch "\.(jpg|jpeg|png|gif)$">
    # example: hotlink protection, caching rules, etc.
</FilesMatch>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

# BEGIN WordPress와 # END WordPress 사이에 둔 내용은 다음에 워드프레스가 파일을 업데이트할 때 사라지며, 고유주소 화면을 로드하는 것만으로도 업데이트가 일어납니다. 마커 앞뒤의 줄은 유지됩니다. 리디렉션에 대해서는 워드프레스 .htaccess 리디렉션 규칙 올바르게 작성하기에서 위치와 루프 방지 방법을 확인하세요.

파일을 수정한 직후의 500 Internal Server Error는 방금 변경한 내용을 가리킵니다. 아파치 문서에 따르면 오류 로그에 허용되지 않은 지시어나 구문 오류가 표시될 가능성이 높습니다. 오래된 튜토리얼에서 복사한 규칙이 원인일 수 있습니다. mod_access_compat이 로드되지 않으면 Order는 아파치 2.4에서 잘못된 명령입니다. 수정을 되돌려 사이트를 복구한 다음 오류 로그를 읽으세요.

기본 블록 그 이상

기본 블록은 고유주소 라우팅과 Authorization 헤더만 처리합니다. /uploads에서 PHP 실행을 차단하거나 wp-config.php에 대한 직접 요청을 거부하는 등 민감한 파일 접근을 강화하려면 실제로 도움이 되는 워드프레스 .htaccess 보안 규칙을 참고하세요. 잘못된 고유주소 구조, 오래된 규칙을 제공하는 캐시 계층, 멀티사이트 하위 디렉터리 충돌 등 다른 이유로 고유주소가 404를 반환한다면 워드프레스 고유주소가 작동하지 않을 때에서 다른 원인을 살펴보세요.

자주 묻는 질문

워드프레스 기본 .htaccess 파일이란 무엇인가요? 워드프레스가 사이트 루트의 .htaccess 파일에서 # BEGIN WordPress와 # END WordPress 사이에 작성하는 RewriteEngine 블록입니다. Authorization 헤더를 PHP로 전달하고, 실제 파일이나 폴더가 아닌 모든 요청을 index.php로 보냅니다.

워드프레스의 정확한 기본 .htaccess 코드는 무엇인가요? RewriteEngine On, Authorization 헤더를 PHP로 전달하는 규칙, RewriteBase /, index.php를 그대로 통과시키는 규칙, 요청이 실제 파일이나 폴더가 아닌지 확인하는 두 조건, 그리고 나머지를 모두 index.php로 보내는 마지막 규칙입니다. 전체 블록은 이 가이드 맨 위에 있습니다.

홈페이지를 제외한 모든 게시물이 404를 반환하는 이유는 무엇인가요? 아파치에서 .htaccess 파일이 누락되거나 손상되면 이런 패턴이 나타납니다. 서버는 rewrite 규칙 없이도 홈페이지를 찾을 수 있습니다. 다른 모든 고유주소는 index.php에 도달하기 위해 이 규칙이 필요하므로, 규칙이 없으면 아파치는 존재하지 않는 파일을 찾다가 404를 반환합니다.

워드프레스가 .htaccess를 자동으로 다시 생성하나요? 네, mod_rewrite가 있는 아파치 또는 LiteSpeed에서 기본 형식이 아닌 고유주소를 사용하고 워드프레스가 그 위치에 쓸 수 있으면 생성합니다. 설정 > 고유주소를 여는 것만으로 충분합니다. 파일이 없으면 폴더에 쓰기 권한이 있어야 하고, 기존 파일은 파일 자체에 쓰기 권한이 있어야 합니다. 그렇지 않으면 화면에 오류와 함께 직접 붙여넣을 규칙이 표시됩니다.

nginx에는 왜 워드프레스 .htaccess 파일이 없나요? nginx에는 아파치의 .htaccess 같은 디렉터리 수준 설정 파일이 없습니다. 같은 라우팅은 nginx 서버 설정에 try_files 규칙으로 작성하며, 워드프레스가 이를 변경할 수 없으므로 관리자가 편집해야 합니다.

고유주소를 저장한 후 .htaccess가 깨진 이유는 무엇인가요? 사용자 지정 규칙이 # BEGIN WordPress와 # END WordPress 마커 안에 들어가 있는지 확인하세요. 워드프레스는 파일을 업데이트할 때 그 사이의 모든 내용을 교체하므로 해당 규칙은 사라집니다. 사용자 지정 규칙은 마커 위에 두세요.

출처


기본 고유주소 블록에 실제로 필요한 보안 또는 리디렉션 규칙을 더해 깨끗하고 올바른 .htaccess를 다시 만들려면 무료 워드프레스 .htaccess 생성기를 사용하세요.

FAQ

질문

워드프레스 기본 .htaccess 파일이란 무엇인가요?

워드프레스가 사이트 루트의 .htaccess 파일에서 # BEGIN WordPress와 # END WordPress 사이에 작성하는 RewriteEngine 블록입니다. Authorization 헤더를 PHP로 전달하고, 실제 파일이나 폴더가 아닌 모든 요청을 index.php로 보냅니다.

워드프레스의 정확한 기본 .htaccess 코드는 무엇인가요?

RewriteEngine On, Authorization 헤더를 PHP로 전달하는 규칙, RewriteBase /, index.php를 그대로 통과시키는 규칙, 요청이 실제 파일이나 폴더가 아닌지 확인하는 두 조건, 그리고 나머지를 모두 index.php로 보내는 마지막 규칙입니다. 전체 블록은 이 가이드 맨 위에 있습니다.

홈페이지를 제외한 모든 게시물이 404를 반환하는 이유는 무엇인가요?

아파치에서 .htaccess 파일이 누락되거나 손상되면 이런 패턴이 나타납니다. 서버는 rewrite 규칙 없이도 홈페이지를 찾을 수 있습니다. 다른 모든 고유주소는 index.php에 도달하기 위해 이 규칙이 필요하므로, 규칙이 없으면 아파치는 존재하지 않는 파일을 찾다가 404를 반환합니다.

워드프레스가 .htaccess를 자동으로 다시 생성하나요?

네, mod_rewrite가 있는 아파치 또는 LiteSpeed에서 기본 형식이 아닌 고유주소를 사용하고 워드프레스가 그 위치에 쓸 수 있으면 생성합니다. 설정 > 고유주소를 여는 것만으로 충분합니다. 파일이 없으면 폴더에 쓰기 권한이 있어야 하고, 기존 파일은 파일 자체에 쓰기 권한이 있어야 합니다. 그렇지 않으면 화면에 오류와 함께 직접 붙여넣을 규칙이 표시됩니다.

nginx에는 왜 워드프레스 .htaccess 파일이 없나요?

nginx에는 아파치의 .htaccess 같은 디렉터리 수준 설정 파일이 없습니다. 같은 라우팅은 nginx 서버 설정에 try_files 규칙으로 작성하며, 워드프레스가 이를 변경할 수 없으므로 관리자가 편집해야 합니다.

고유주소를 저장한 후 .htaccess가 깨진 이유는 무엇인가요?

사용자 지정 규칙이 # BEGIN WordPress와 # END WordPress 마커 안에 들어가 있는지 확인하세요. 워드프레스는 파일을 업데이트할 때 그 사이의 모든 내용을 교체하므로 해당 규칙은 사라집니다. 사용자 지정 규칙은 마커 위에 두세요.