홈으로 돌아가기

SEO를 위한 사람이 읽기 쉬운 URL: Apache와 Nginx에서 설정

이 기사는 SEO 개선을 위한 사람이 읽기 쉬운 URL 구현을 검토합니다. CMS 설정, Apache/Nginx 서버, 마이그레이션 자동화 및 오류 제거가 설명됩니다. 코드 예제와 CDN 통합 권장 사항이 제공됩니다.

사람이 읽기 쉬운 URL: 최대 SEO 효과를 위한 전체 설정
Advertisement 728x90

SEO 친화적 URL 최적화: 서버와 CMS 설정 가이드

SEO 친화적 URL은 동적 매개변수를 읽기 쉬운 경로로 바꿔 검색엔진의 관련성을 높입니다. site.com/products.php?category_id=102&item_id=9452 대신 site.com/catalog/laptops/iphone-15-pro처럼 사용하세요. 이 구조는 사이트 계층과 키워드를 주소에 직접 반영해 크롤링과 분석을 쉽게 만듭니다.

올바른 SEO URL은 소문자, 단어 구분용 하이픈(-), UTM 매개변수 제외를 사용합니다. 경로는 3~5단어로 타겟 키워드를 정확히 넣으세요. 예: site.com/blog/seo-optimization 대신 site.com/p?id=3312&ref=main.

이점으로는 검색 결과 클릭률 상승, 키워드 관련성 향상, 크롤러 탐색 용이, 공유 편의, 이탈률 감소가 있습니다.

Google AdInline article slot

인기 CMS 플랫폼에서 SEO URL 설정하기

WordPress: 설정에서 %postname% 또는 /%category%/%postname%/ 선택 후 저장 — .htaccess가 자동 업데이트됩니다. mod_rewrite 활성화 확인하세요.

Joomla: SEF URL과 Apache Rewrite 활성화, htaccess.txt를 .htaccess로 이름 변경.

OpenCart: 서버 설정에서 SEO URL 활성화, 카테고리와 상품 별칭 설정, .htaccess.txt 이름 변경.

Google AdInline article slot
# Apache에서 mod_rewrite 확인
apache2ctl -M | grep rewrite

서버 설정: Apache와 Nginx

Apache .htaccess 설정

mod_rewrite 활성화:

sudo a2enmod rewrite
sudo systemctl restart apache2

기본 규칙:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]

RewriteRule ^category/([0-9]+)/?$ /index.php?cat=$1 [L]

[L] 플래그는 처리 중단, [QSA]는 쿼리 매개변수 보존.

Google AdInline article slot

Nginx 설정

가상 호스트 파일에서:

server {
    listen 80;
    server_name site.com www.site.com;
    root /var/www/site;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

테스트 및 재로드:

sudo nginx -t
sudo systemctl reload nginx

CDN 연동과 자동화

Cloudflare의 경우 Page Rules에서 Cache Level: Standard 설정 — SEO URL은 동적 URL보다 효율적으로 캐싱돼 오리진 서버 부하를 15~25% 줄입니다.

마이그레이션 자동화

MySQL(WordPress)용 Bash 스크립트:

#!/bin/bash
DB_NAME="your_db"
DB_USER="your_user"
DB_PASS="your_password"

mysql -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" <<EOF
UPDATE wp_posts
SET guid = REPLACE(guid, '/?p=', '/post/')
WHERE post_status = 'publish';
EOF

echo "변경 완료"

.htaccess 업데이트:

sed -i '/RewriteEngine On/a RewriteRule ^\?p=([0-9]+)$ /post/$1 [R=301,L]' /var/www/site/.htaccess

GitHub Actions로 CI/CD를 통해 설정 배포 자동화.

문제 해결 및 오류 수정

기존 URL 404 오류

301 리다이렉트 설정:

RewriteRule ^index\.php\?p=([0-9]+)$ /post/$1 [R=301,L]

Google Search Console의 Coverage 보고서 확인.

중복 페이지

  • <link rel="canonical" href="primary-URL"> 사용
  • robots.txt에서 동적 URL 차단: Disallow: /*?id=

리다이렉트 테스트:

curl -I -L site.com/?p=123

주요 요약

  • SEO URL은 추가 비용 없이 키워드 관련성과 클릭률을 높입니다.
  • 커스텀 프로젝트에는 try_files나 RewriteRule 서버 설정이 필수.
  • 301 리다이렉트로 마이그레이션 시 링크 가치 보존.
  • CDN 연동으로 성능 15~25% 향상.
  • 스크립트로 대형 사이트 작업 최소화.

— Editorial Team

Advertisement 728x90

다음 읽기