하위 폴더를 Apache, NGINX, IIS 및 Cloudflare의 루트 폴더로 리디렉션
내 웹사이트가 하위 폴더에 위치해 있었는데, 이제 도메인의 최상위 수준으로 옮기기로 결정했습니다.
가장 중요한 것은 모든 콘텐츠를 하위 폴더와 동일한 경로에 유지하면서, URL들을 도메인의 루트나 다른 지정된 위치로 리다이렉트하는 것이었습니다.
아파치 웹 서버 설정
Apache HTTP 서버는 RewriteCond 기능을 제공합니다. 이 설정을 변경하려면 .htaccess 파일 또는 httpd.conf 파일을 수정하여 다음 줄을 추가해야 합니다.
RewriteEngine on RewriteBase / RewriteRule ^subfolder/(.*)$ /$1 [R=301,NC,L]
여기서 기본 경로로 '/'를 사용하며, RewriteRule은 정규식을 활용하여 하위 폴더 내의 모든 URL에 대해 작동합니다. 'R=301'은 영구적인 리다이렉션을 의미합니다.
엔진엑스 웹 서버 구성
Nginx 웹 서버에서도 비슷한 리다이렉션을 구현할 수 있습니다. 이는 /etc/nginx/nginx.conf 파일이나 /etc/nginx/conf.d/default.conf 파일 내에서 rewrite 지시문을 사용하여 설정할 수 있습니다.
location ^~ /subfolder {
rewrite ^/subfolder(.*)$ $1 last;
}
여기서 '^~' 수정자는 해당 접두사 위치가 다른 정규식 위치보다 우선순위를 갖도록 보장합니다.
IIS 서버 설정
IIS에서는 Rewrite 모듈을 사용하여 하위 폴더 내의 URL을 재작성하고, 마치 루트에 있는 것처럼 보이게 만들 수 있습니다. 웹 루트 폴더(%SystemDrive%inetpubwwwroot) 내의 web.config 파일을 다음과 같이 수정할 수 있습니다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Root_URL_Rewrite" stopProcessing="true">
<match url="^(.*)" />
<action type="Rewrite" url="/subfolder/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
또한, IIS 관리자에서 URL 재작성 UI를 사용하여 인바운드 규칙을 추가하는 것도 가능합니다.
클라우드플레어 설정
Cloudflare를 이용하면 아래 단계를 따라 유사한 리다이렉션을 설정할 수 있습니다.
- Cloudflare 계정에 로그인합니다.
- URL 포워딩을 설정하려는 도메인과 관련된 Cloudflare 계정을 선택합니다.
- '규칙' 앱을 클릭한 후 '페이지 규칙' 탭으로 이동합니다.
- '페이지 규칙'에서 '페이지 규칙 생성' 버튼을 클릭하면, 해당 도메인에 대한 페이지 규칙 설정 창이 열립니다.
- 'URL이 일치하는 경우' 섹션에 'https://example.com/subfolder'와 같이 규칙이 적용될 하위 폴더의 URL 패턴을 입력합니다.
- '설정 추가' 버튼을 클릭하고 드롭다운 메뉴에서 '전달 URL'을 선택합니다.
- '상태 코드 선택'을 클릭하고 '301 (영구 리다이렉션)' 또는 '302 (임시 리다이렉션)'를 선택합니다.
- 루트 도메인의 대상 URL을 입력한 후 '저장 및 배포' 버튼을 클릭하여 설정을 완료합니다.
위의 예는 'https://koreantech.org.com/blog'에 있는 모든 콘텐츠를 'https://koreantech.org.com'으로 리다이렉트하는 경우를 보여줍니다.
결론
보시다시피, 하위 폴더를 루트 URL이나 다른 URL로 리다이렉트하거나 매핑하는 것은 자주 요구되는 작업이며, 다양한 옵션을 통해 널리 사용되는 웹 서버에서 지원됩니다.
다음으로는 하나의 IP 주소에서 여러 웹사이트를 호스팅하는 방법에 대해 알아보겠습니다.
이 글이 유익했나요? 그렇다면 이 정보를 다른 사람들과 공유해 보는 것은 어떨까요?