[WP] 워드프레스 htaccess 기본 설정 및 WWW URL 제거 방법
워드프레스로 사이트를 운영하는 중에 .htaccess 파일 기본 설정이 필요할 때가 있습니다. 워드프레스 htaccess 기본 설정은 일반 사이트와 멀티 사이트 용으로 나뉩니다. FTP 또는 SSH 등으로 .htaccess 파일이 없는 경우 확인이 되면 아래 내용을 참조해서 생성하면 되겠습니다.
✅ 워드프레스 htaccess 기본 설정: 일반 사이트
워드프레스 .htaccess 기본 설정(일반 사이트)은 다음과 같습니다.
# BEGIN WordPress
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]
# END WordPress✅ .htaccess 기본 설정: 멀티 사이트
🔲 하위 폴더 설정
# BEGIN WordPress Multisite
# Using subfolder network type: https://wordpress.org/documentation/article/htaccess/#multisite
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPress Multisite🔲 하위 도메인 설정
# BEGIN WordPress Multisite
# Using subdomain network type: https://wordpress.org/documentation/article/htaccess/#multisite
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress Multisite✅ 워드프레스 WWW URL 제거: NON-WWW로 리디렉션
웹사이트의 SEO를 위해 또는 트랜드에 따르면 웹 사이트의 서브 도메인인 www는 점점 사용하는 추세가 줄어들고 있습니다. 크롬 앱에서도 www가 있는 사이트로 접속하더라도 마우스를 클릭해서 확인하기 전에는 www를 제거한 상태인 것이 그 반증이라 할 수 있겠습니다.
워드프레스에서 www URL 제거 방법은 크게 두 가지가 있습니다.(apache 기준) .htaccess 설정과 virtual host 파일을 수정하는 방법입니다.
🔲 .htaccess 설정
# BEGIN WordPress
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]
# HTTP와 www를 포함한 요청을 HTTPS(NON-WWW)로 리디렉션
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://mydomain.com$1 [R=301,L]
# END WordPress🔲 virtual host 파일 설정
<VirtualHost *:80>
ServerName mydomain.com
ServerAlias *.mydomain.com
# HTTP와 www를 포함한 요청을 HTTPS(NON-WWW)로 리디렉션
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://mydomain.com$1 [R=301,L]
</VirtualHost><IfModule mod_rewrite.c>
RewriteEngine On
</IfModule>위 두 가지 설정이 되려면 개인 서버에서는 http.conf 파일 등에 RewriteEngine 설정이 전역 설정으로 되어 있어야 합니다. 직접 운영하는 서버가 아닌 경우 .htaccess 파일에서 설정을 하게 되는데 설정 후에도 적용이 되지 않는다면 사용 중인 호스팅 업체에 문의하면 되겠습니다.
![[WP] 워드프레스 htaccess 기본 설정 및 WWW URL 제거 방법 1 워드프레스 작업](https://uknew.co/wp-content/uploads/2023/02/%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-%EC%9E%91%EC%97%85-1024x704.png)
ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.