NGINX 재작성 규칙은 웹 서버에서 URL 요청을 수정하고 관리하는 강력한 방법을 제공합니다. 이러한 규칙은 URL 리디렉션, URL 구조 변경 및 SEO 개선에 필수적입니다. 재작성 규칙을 활용하면 사용자와 검색 엔진이 콘텐츠에 효율적으로 액세스하고 깔끔하고 정리된 URL 구조를 유지할 수 있습니다. 재작성 규칙을 마스터하면 웹 서버의 기능과 유연성을 향상시켜 전반적인 사용자 경험을 향상시킬 수 있습니다.
이 가이드에서는 NGINX에서 다시 쓰기 규칙을 만드는 방법을 설명하고 URL 수정을 효과적으로 처리하도록 서버를 구성하는 데 도움이 되는 명확한 예와 단계를 제공합니다.
NGINX 재작성 규칙: Return 지시어
엔진엑스 return
지시문은 서버 응답을 관리하는 강력한 도구입니다. 주로 클라이언트를 다른 URL로 리디렉션하거나 특정 상태 코드를 보내는 데 사용됩니다. 이 지시어는 특히 웹 사이트를 이동하거나 재구성할 때 트래픽 리디렉션을 단순화합니다. 이는 SEO와 전환 중 사용자 경험 유지에 필수적입니다. 적용을 이해하기 위해 독특한 예를 살펴보겠습니다.
예: 사용자를 이전 페이지에서 새 페이지로 리디렉션한다고 가정해 보겠습니다. NGINX 구성 파일에서 다음을 사용할 수 있습니다. return
다음과 같은 지시어:
server {
listen 80;
server_name oldsite.com;
return 301 http://newsite.com$request_uri;
}
이 예에서 oldsite.com에 대한 모든 요청은 요청 URI를 유지하면서 newsite.com으로 영구적으로 리디렉션됩니다. 301 상태 코드는 영구 리디렉션을 나타내며 검색 엔진에 색인을 업데이트하도록 알립니다.
NGINX 재작성 규칙: 재작성 지시어
NGINX 재작성 지시문은 추가 처리 전에 다양한 방식으로 요청 URI를 변경하는 데 사용됩니다. 조건에 따라 복잡한 URL 조작을 허용하므로 return 지시문보다 더 다양합니다. 이 기능은 SEO 친화적인 URL을 생성하고 레거시 링크를 관리하는 데 중요합니다.
예: 더 나은 SEO를 위해 동적 URL을 정적으로 보이는 URL로 변환해야 한다고 상상해 보세요. 다음과 같이 rewrite 지시문을 사용할 수 있습니다.
server {
listen 80;
server_name example.com;
location /products {
rewrite ^/products/([0-9]+)/([0-9]+)$ /product?id=$1&page=$2 last;
}
}
이 시나리오에서는 example.com/products/123/2와 같은 URL이 내부적으로 example.com/product?id=123&page=2로 다시 작성됩니다. 마지막 플래그는 다시 쓰기 프로세스를 중지하고 새 URI를 다시 평가해야 함을 나타냅니다.
NGINX 재작성 규칙 예
NGINX에서 HTTPS 재작성 규칙 구현
데이터 보안을 위해서는 HTTPS를 통한 보안 연결을 보장하는 것이 중요합니다. NGINX 재작성 지시문은 모든 HTTP 트래픽을 HTTPS로 리디렉션하여 전송 중인 데이터의 보안을 강화할 수 있습니다.
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
이 예에서는 example.com에 대한 HTTP 요청이 HTTPS로 리디렉션되어 암호화된 통신을 보장합니다.
URL 간소화: NGINX 재작성 규칙에서 중복 슬래시 제거
경우에 따라 URL에 중복된 슬래시가 포함되어 혼동이나 오류가 발생할 수 있습니다. NGINX의 재작성 지시문은 이중 슬래시가 있는 URL을 단일 슬래시로 변환하여 이를 효율적으로 처리합니다.
server {
server_name example.com;
if ($request_uri ~* "\/\/") {
rewrite ^/(.*)/$ /$1 permanent;
}
}
이 규칙은 중복된 슬래시를 제거하여 URL을 간소화합니다.
디렉터리 리디렉션: NGINX 다시 쓰기 규칙 실행
리소스를 재구성하거나 이동할 때 전체 디렉터리를 효율적으로 리디렉션해야 하는 경우가 많습니다. NGINX는 재작성 규칙을 통해 이를 용이하게 합니다.
location ^~ /old-directory/ {
rewrite ^/old-directory/(.*)$ /new-directory/$1 permanent;
}
이 명령은 /old-directory/의 모든 요청을 /new-directory/로 리디렉션합니다.
NGINX에서 다시 쓰기 규칙을 사용한 쿼리 문자열 조작
쿼리 문자열을 기반으로 URL을 변경하면 사이트를 재설계하는 동안 특히 유용할 수 있습니다. NGINX 재작성 규칙은 이러한 매개변수를 기반으로 동적 URL 재구성을 허용합니다.
if ($args ~ "^id=(.*)&lang=(.*)") {
set $id $1;
set $lang $2;
rewrite ^/page.php$ /page/$lang/$id? permanent;
}
여기서 다시 쓰기 규칙은 복잡한 쿼리 문자열을 보다 간소화된 URL로 변환합니다.
통일된 URL 보장: NGINX 재작성 규칙의 후행 슬래시
후행 슬래시와 같은 URL 구조의 통일성은 사이트 일관성과 SEO에 매우 중요할 수 있습니다.
rewrite ^([^.]*[^/])$ $1/ permanent;
이 규칙은 표준화된 형식을 유지하면서 모든 URL이 슬래시로 끝나도록 합니다.
메서드 기반 리디렉션: NGINX에서 다시 쓰기 규칙 사용
NGINX는 양식 제출을 안전하게 처리하는 데 중요한 POST와 같은 특정 요청 방법을 기반으로 한 리디렉션을 허용합니다.
if ($request_method = POST ) {
return 301 https://example.com$request_uri;
}
이 명령은 모든 POST 요청을 HTTPS URL로 리디렉션합니다.
NGINX 다시 쓰기 규칙으로 이미지 보호
이미지에 대한 무단 직접 링크를 방지하여 서버 리소스를 보호하십시오.
location ~ .(gif|png|jpe?g)$ {
valid_referers none blocked ~.google. ~.bing. ~.yahoo. example.com *.example.com;
if ($invalid_referer) {
rewrite ^/images/(.*)$ /stop-hotlinking.$1 last;
}
}
이 설정은 유효하지 않은 리퍼러가 있는 요청을 리디렉션하여 핫링크를 효과적으로 차단합니다.
일관성을 위해 소문자 URL 적용
사이트 전체에서 URL을 소문자로 유지하면 일관성이 향상되고 혼란이 방지됩니다.
location ~ [A-Z] {
rewrite ^(.*)$ $scheme://$host$1 lowercase;
}
이 명령은 모든 대문자 URL 요소를 소문자로 변환합니다.
URL 구조 변경 처리
웹 사이트를 업데이트하는 동안 트래픽 손실이나 사용자 경험에 해를 끼치지 않고 새로운 URL 구조에 적응하는 것이 중요합니다.
server {
listen 80;
server_name example.com;
location ~* ^/oldpath/(.*) {
rewrite ^/oldpath/(.*)$ /newpath/$1 permanent;
}
}
사용자와 검색 엔진을 이전 URL에서 새 URL로 리디렉션합니다.
CMS 플랫폼을 위한 깔끔한 URL 만들기
쿼리 문자열을 사용하는 CMS 플랫폼의 경우 NGINX 재작성 규칙을 사용하면 더욱 깔끔하고 SEO 친화적인 URL을 만들 수 있습니다.
location / {
try_files $uri $uri/ @extensionless-php;
index index.html index.htm index.php;
}
location ~ \.php$ {
try_files $uri =404;
}
location @extensionless-php {
rewrite ^(/[^.]*[^/])$ $1.php last;
}
이 설정은 URL을 더 읽기 쉬운 형식으로 변환하여 잠재적으로 SEO 성능을 향상시킵니다.
결론
NGINX에서 재작성 규칙을 생성하고 구성하면 URL 관리를 최적화하고 SEO를 개선하며 원활한 사용자 경험을 보장할 수 있습니다. 재작성 규칙을 정기적으로 검토하고 테스트하여 예상대로 작동하는지 확인하고 필요에 따라 조정하십시오. NGINX 재작성 규칙을 익히면 NGINX의 모든 기능을 활용하여 보다 동적이고 응답성이 뛰어난 웹 서버를 만들 수 있습니다.