PHP - 일반적인 .httaccess 301 리디렉션 규칙
웹 사이트를 구축하거나 변경된 페이지를 리디렉션 하거나 변경된 내용을 검색 엔진에 알려줄 수 있는 일반적인 .htaccess 301 리디렉션 규칙이 있습니다. 각 프로젝트의 시간을 절약하기 위해 모든 공통 규칙을 모았습니다.
Htaccess 파일이란 무엇입니까?
.htaccess(또는 Hypertext Access) 파일은 Apache 웹 서버에 있는 디렉토리 및 하위 디렉토리를 제어하는 구성 텍스트 파일입니다. Linux 기반 웹 호스팅을 사용하는 경우 웹 속성이 Apache에서 실행될 수 있습니다. 특히 WordPress, Joomla, Drupal 또는 기타 콘텐츠 관리 웹 소프트웨어를 배포 하는 경우 특정 디렉터리에서 .htaccess 파일을 보았을 수 있습니다.
.htaccess 파일에는 서버에 대한 특정 지침이 포함될 수 있습니다. 이 파일은 서버가 상주하는 디렉토리의 암호를 요구하도록 서버를 구성할 수 있습니다. .htaccess 파일은 사용자를 다른 인덱스 파일 또는 사이트로 자동 리디렉션하고, IP 주소를 기반으로 사용자를 제한하거나 허용하고, 디렉터리 목록을 비활성화 하도록 구성할 수 있습니다. .htaccess 파일을 편집할 필요가 없을 수도 있지만 편집할 경우 파일 이름이 '.htaccess'로 지정되고 앞에 마침표가 있고 .txt 또는 .htm 파일 확장자가 없는지 확인해야합니다.
일반적인 301 리디렉션 Htaccess 규칙
단일 페이지를 어떻게 리디렉션합니까?
Redirect 301 /pagename.php http://www.domain.com/pagename.html
전체 사이트 또는 도메인을 새 사이트로 어떻게 리디렉션합니까?
Redirect 301 / http://www.domain.com/
전체 사이트를 하위 폴더로 어떻게 리디렉션합니까?
Redirect 301 / http://www.domain.com/subfolder/
하위 폴더를 다른 웹 사이트로 어떻게 리디렉션합니까?
Redirect 301 /subfolder http://www.domain.com/
파일 확장자를 리디렉션하지만 페이지 이름은 유지하는 방법은 무엇입니까?
Ex) .html 확장자가 동일한 파일 이름을 사용하지만 .php 확장자를 사용하려는 경우.
RedirectMatch 301 (.*)\.html$ http://www.domain.com$1.php
Rewrite를 사용하여 이전 도메인에서 새 도메인으로 리디렉션하는 방법은 무엇입니까?
RewriteEngine on
RewriteBase /
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
Rewrite를 사용하여 www가 아닌 곳에서 www 하위 도메인으로 리디렉션하는 방법은 무엇입니까?
RewriteEngine on
RewriteBase /
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]
Rewrite를 사용하여 도메인을 하위 디렉터리가 있는 www 위치로 리디렉션하는 방법은 무엇입니까?
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/directory/index.html [R=301,NC]
Rewrite를 사용하여 이전 도메인에서 전체 경로 및 쿼리 문자열을 포함하는 새 도메인으로 리디렉션하는 방법은 무엇입니까?
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*) http://www.newdomain.com%{REQUEST_URI} [R=302,NC]
Rewrite를 사용하여 하위 디렉터리가 있는 이전 도메인에서 하위 디렉터리가 없는 새 도메인으로 리디렉션되지만 전체 경로와 쿼리 문자열을 포함하는 방법은 무엇입니까?
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/subdirname/(.*)$
RewriteRule ^(.*) http://www.katcode.com/%1 [R=302,NC]
루트 디렉토리에 있는 파일을 사용하여 쿼리 매개 변수를 사용하여 URL을 어떻게 Rewrite하고 리디렉션합니까?
Ex) 원래 URL은 http://www.website.com/index.php?id=3이고 새 URL은 http://www.website.com/path-to-new-location/입니다.
RewriteEngine on
RewriteCond %{QUERY_STRING} id=3
RewriteRule ^index\.php$ /path-to-new-location/? [L,R=301]
쿼리 매개 변수가 있는 URL을 리디렉션하고 파일을 하위 디렉토리에 배치하는 방법은 무엇입니까?
Ex) 원래 URL은 http://www.website.com/sub-dir/index.php?id=3이고 새 페이지는 http://www.website.com/path-to-new-location/입니다.
RewriteEngine on
RewriteCond %{QUERY_STRING} id=3
RewriteRule ^sub-dir/index\.php$ /path-to-new-location/? [L,R=301]
중복 콘텐츠를 제거하기 위해 HTTP에서 HTTPS로 사이트를 어떻게 리디렉션합니까?
RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
중복 콘텐츠를 제거하기 위해 HTTPS에서 HTTP로 사이트를 어떻게 리디렉션합니까?
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
index.html 또는 index.php를 제거하고 루트로 리디렉션하는 방법은 무엇입니까?
RewriteEngine On
RewriteCond %{THE_REQUEST} /index.php HTTP [NC]
RewriteRule (.*)index.php$ /$1 [R=301,L]
RewriteEngine On
RewriteCond %{THE_REQUEST} /index.html HTTP [NC]
RewriteRule (.*)index.html$ /$1 [R=301,L]
URL 루트 수준에서 쿼리 문자열을 유지하면서 쿼리 매개 변수가 있는 URL을 디렉터리 기반 구조로 Rewrite하고 리디렉션하는 방법은 무엇입니까?
Ex) 원래 URL은 http://www.website.com/index.php?id=100이고 새 페이지는 http://www.website.com/100/입니다.
RewriteEngine On
RewriteRule ^([^/d]+)/?$ index.php?id=$1 [QSA]
URL 하위 디렉터리에 쿼리 문자열 매개 변수를 유지하면서 쿼리 매개 변수가 있는 URL을 디렉터리 기반 구조로 Rewrite하는 방법은 무엇입니까?
Ex) 원래 URL은 http://www.website.com/index.php?category=fish이고 새 페이지는 http://www.website.com/category/fish/입니다.
RewriteEngine On
RewriteRule ^/?category/([^/d]+)/?$ index.php?category=$1 [L,QSA]
이전 웹 사이트를 새 도메인으로 리디렉션하고 URL 경로를 유지하려면 어떻게 합니까?
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example-old\.com$ [NC]
RewriteRule ^(.*)$ http://www.example-new.com/$1 [R=301,L]
# 새 도메인에 대한 경로를 전달하지 않으려면 마지막 줄을 다음과 같이 변경하십시오. #
RewriteRule ^(.*)$ http://www.example-new.com/ [R=301,L]
URL이 없는 URL에 후행 슬래시를 어떻게 다시 작성하고 추가합니까?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.example.com/$1/ [R=301,L]
블로그 하위 도메인에서 블로그 폴더로 어떻게 리디렉션합니까?
Ex) blog.oldsite.com을 www.newsite.com/blog/로 리디렉션
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI}/ blog
RewriteRule ^(.*) http://www.somewhere.com/%{REQUEST_URI} [R=302,NC]
RewriteRule ^(.*) http://www.somewhere.com/blog/%{REQUEST_URI} [R=302,NC]
한 디렉토리를 다른 디렉토리로 어떻게 리디렉션합니까?
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*)/old-directory/(.*)$ $1/new-directory/$2 [R,L]
출처: https://linchpinseo.com/htaccess-rules/#common-301-redirect-htaccess-rules
0 댓글