WordPress 사용 중 이미지 최적화를 위해 Converter for Media Plugin을 설치했지만, rewrites_not_executed 오류가 발생했다면 이를 해결하기 위한 정확한 방법이 필요합니다. 이 가이드는 해당 오류의 원인과 Nginx 환경에서 이를 해결하는 방법을 상세히 설명합니다. 웹사이트 최적화를 성공적으로 이루기 위한 실질적인 팁을 제공합니다.
rewrites_not_executed 오류란?
rewrites_not_executed 오류는 Converter for Media Plugin이 WebP 또는 AVIF 형식으로 변환된 이미지를 제공하는 과정에서 Nginx 서버의 rewrite 규칙이 올바르게 설정되지 않았을 때 발생하는 문제입니다. Apache 서버는 .htaccess
파일로 쉽게 해결되지만, Nginx에서는 별도의 수동 설정이 필요합니다. 이 오류가 해결되지 않으면 플러그인이 제대로 작동하지 않아 이미지 최적화의 장점을 활용할 수 없습니다.
Nginx 환경에서 rewrites_not_executed 오류의 주요 원인
- rewrite 규칙 미설정
Nginx는 rewrite 규칙을 명시적으로 추가해야 하며, 기본 설정으로는 플러그인이 요구하는 작업을 수행하지 않습니다. - 변환된 이미지 파일 경로 문제
플러그인은 변환된 파일을/wp-content/uploads-webpc/
경로에 저장합니다. 이 경로로 요청이 리디렉션되지 않으면 문제가 발생합니다. - 브라우저 호환성 변수 미설정
브라우저가 WebP 또는 AVIF를 지원하는지 확인하는http_accept
헤더 기반 설정이 누락되었을 가능성이 있습니다.
rewrites_not_executed 오류 해결 방법
1. Nginx 설정 파일 수정
/etc/nginx/sites-available/your-site.conf
또는 /etc/nginx/nginx.conf
에 다음 규칙을 추가합니다. 이 규칙은 브라우저가 WebP 및 AVIF를 지원하는지 확인하고, 변환된 이미지를 제공하도록 설정합니다.
# BEGIN Converter for Media
set $ext_avif ".avif";
if ($http_accept !~* "image/avif") {
set $ext_avif "";
}
set $ext_webp ".webp";
if ($http_accept !~* "image/webp") {
set $ext_webp "";
}
location ~* ^/wp-content/(?<path>.+)\.(?<ext>jpe?g|png|gif|webp)$ {
add_header Vary Accept;
add_header Cache-Control "private";
expires 365d;
try_files
/wp-content/uploads-webpc/$path.$ext$ext_avif
/wp-content/uploads-webpc/$path.$ext$ext_webp
$uri =404;
}
# END Converter for Media
설명
set $ext_avif
와set $ext_webp
: 브라우저가 특정 포맷을 지원하는지 확인하고 변수로 설정합니다.location
블록: 변환된 이미지를 우선적으로 시도한 뒤 원본 이미지를 제공하거나 404를 반환합니다.add_header Vary Accept
: 브라우저 요청 헤더를 기반으로 적절한 파일을 제공하도록 설정합니다.
2. 설정 적용하기
설정을 저장한 후, Nginx 설정 파일의 유효성을 확인하고 변경 사항을 적용합니다.
sudo nginx -t # 설정 파일 테스트
sudo systemctl reload nginx # 설정 반영
3. 플러그인 캐시 초기화
변환된 이미지가 저장된 경로(/wp-content/uploads-webpc/
)를 확인하고, 플러그인에서 캐시를 초기화합니다. 캐시가 잘못되었을 경우 변환 파일이 제대로 제공되지 않을 수 있습니다.
4. 권한 문제 확인
Nginx가 /wp-content/uploads/
와 /wp-content/uploads-webpc/
디렉터리에 쓰기 권한을 가지고 있는지 확인합니다.
sudo chown -R www-data:www-data /var/www/your-site/wp-content
sudo chmod -R 755 /var/www/your-site/wp-content
추가 팁: WebP 및 AVIF 지원 최적화
- 캐싱 레이어 확인
Cloudflare 같은 추가 캐싱 서비스를 사용 중이라면, 적절한 캐시 및 리다이렉션 설정을 추가하세요. - 브라우저 호환성 테스트
다양한 브라우저에서 이미지가 올바르게 표시되는지 확인합니다. WebP와 AVIF를 지원하지 않는 구형 브라우저에서는 원본 이미지를 제공해야 합니다. - 성능 테스트
설정 완료 후 웹사이트 성능 테스트 도구(Google PageSpeed Insights 등)를 사용해 최적화가 제대로 적용되었는지 확인하세요.
결론
rewrites_not_executed 오류는 Nginx 환경에서 발생하기 쉬운 문제지만, 적절한 설정을 통해 간단히 해결할 수 있습니다. 이 가이드를 따라 서버 설정을 수정하고 플러그인 기능을 최적화하면 웹사이트의 이미지 로딩 속도와 사용자 경험을 크게 향상시킬 수 있습니다. 올바른 설정을 통해 WordPress 웹사이트를 한 단계 더 발전시키세요.