전체 웹 사이트를 단일 페이지로 리디렉션


10

전체 WordPress 사이트를 단일 WordPress 페이지로 리디렉션해야합니다. 일종의 유지 관리 모드이지만 리디렉션은 게시 된 WordPress 페이지로 이동해야합니다. 불행히도, 내가 보여줄 유지 보수 페이지는 다른 WordPress 플러그인을 사용해야합니다.

이 작업을 수행 할 수있는 유지 관리 모드 플러그인을 알지 못합니다. 기껏해야 사용자 정의 HTML / CSS 코드를 작성할 수 있습니다.

.htaccess mod_rewrite 규칙에 대해 생각하고있었습니다. 그러나 나는 mod_rewrite에 매우 약합니다.

먼저 정식 리디렉션을 비활성화했습니다 .

그런 다음 사용하려고했습니다.

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/index.php?page_id=813$
RewriteRule ^(.*)$ /index.php?page_id=813 [R=307,L]

그러나 이러한 규칙은 리디렉션 루프를 생성합니다. page_id=813물론 유지 관리 페이지의 ID입니다.

게시 된 페이지로 리디렉션되는 유지 관리 모드 플러그인을 알고있는 사람이 있습니까?

또는 누군가 mod_rewrite 규칙을 수정하도록 도와 줄 수 있습니까? 우리가 /wp-admin리디렉션 규칙을 벗어날 수 있다면 추가로 환호합니다 .

답변:


14

혼란스럽고 과도하게 엔지니어링 된 .htaccess 수정 프로그램을 만들 필요없이 WordPress 자체에서 실제로이 작업을 수행 할 수 있습니다.

우리는 template_redirect프론트 엔드에서만 작동 하는 필터에 연결할 수 있습니다 (wp-admin이 아닌). 그런 다음이 is_page()함수를 사용하여 ID가 813 인 페이지를보고 있는지 확인합니다. 그렇지 않은 경우 wp_redirect()함수를 사용하여 해당 페이지로 리디렉션 합니다.

add_action( 'template_redirect', function() {
    if ( is_page( 813 ) ) {
        return;
    }

    wp_redirect( esc_url_raw( home_url( 'index.php?page_id=183' ) ) );
    exit;
} );

302의 '임시'HTTP 헤더로 리디렉션이 이루어 지므로 봇과 검색 엔진에 사이트가 곧 가동 될 것임을 알리므로 유지 관리 모드에 적합합니다. 그러나 사이트를 영구적으로 옮기는 경우 리디렉션에 301 개의 '영구적 인'HTTP 헤더를 사용할 수 있습니다. wp_redirect함수에 두 번째 매개 변수를 추가하면 됩니다. 예:

add_action( 'template_redirect', function() {
    if ( is_page( 813 ) ) {
        return;
    }

    wp_redirect( esc_url_raw( home_url( 'index.php?page_id=183' ) ), 301 );
    exit;
} );

이것은 내 목적에도 효과적입니다. 트위스트를 추가하는 것을 제외하고-사이트는 "다운"상태이며 WP를 계속 유지하고 작별 페이지를 홈 페이지로 제공하고 싶습니다. SEO에 대한 이러한 유형의 리디렉션에 301 헤더를 추가하는 방법이 있습니까?
Tapefreak

@Tapefreak HTTP 헤더를 wp_redirect함수 의 두 번째 매개 변수로 설정할 수 있습니다 . 예 :wp_redirect( home_url( 'index.php?page_id=183' ), 301 );
shea

1

@shea가 허용하는 답변을 하나의 파일 플러그인에 포함 시켰으며 관리자가 아닌 사용자 만 리디렉션하고 임의의 URL로 리디렉션하는 두 가지 옵션을 추가했습니다.

관심이 있으시면 Github => https://github.com/Idearia/wp-redirect-website-to-url 에서 플러그인을 다운로드 하십시오 .

옵션

플러그인 옵션은 매우 간단합니다. 당분간 플러그인 파일에 하드 코딩되어 있지만 사람들이 요청하면 옵션 페이지를 작성하는 것이 좋습니다.

  • DESTINATION_URL : 사용자를 리디렉션 할 전체 URL입니다. 웹 사이트 도메인 외부의 페이지 일 수 있습니다.
  • DESTINATION_URL_ID : 리디렉션 URL이 WordPress 페이지 또는 게시물 인 경우 여기에 WordPress ID를 지정하십시오.
  • USER_CAPABILITY :이 기능을 가진 사용자는 리디렉션되지 않습니다. 모든 사람을 리디렉션하려면 비워 두십시오. 기본값은 'manage_options'이며 관리자가 사용할 수 있습니다.
  • REDIRECT_STATUS_CODE : 리디렉션 상태 : 임시 리디렉션의 경우 302, 영구 리디렉션의 경우 301
  • DEBUG : debug.log에 디버그 정보를 인쇄할지 여부.

Github 페이지의 업데이트 된 정보 => https://github.com/Idearia/wp-redirect-website-to-url .

플러그인은 매우 기본적입니다. 고급 사용자는 WordPress.org 플러그인 저장소에서 사용 가능한 많은 유지 보수 플러그인 중 하나를 대신 고려할 수 있습니다.

플러그인 실행에 문제가 있으면 알려주세요 😊


0

훨씬 간단한 솔루션을 원할 것입니다. 내 가정은 도메인에 대한 모든 요청에 ​​대해 누구나 WP 페이지를 볼 필요가없는 한 페이지 만 보길 원한다는 것입니다.

HTML 페이지를 만들고 CSS로 스타일을 지정한 다음 해당 페이지를 호스팅 플랫폼의 다른 폴더에 넣으십시오. 페이지가 원하는 모양인지 확인하십시오.

그런 다음 도메인을 새 폴더로 지정하십시오. 대부분의 호스팅 플랫폼에서는 도메인의 기본 폴더를 지정할 수 있습니다. 도메인을 새 기본 폴더로 지정하십시오. 복잡한 htaccess 리디렉션, WP 플러그인 또는 WP에 연결하기위한 특수 필터가 필요하지 않습니다.

또는 모든 콘텐츠를 현재 도메인 루트 폴더 밖으로 옮기고 간단한 HTML 파일을 그 자리에 넣을 수 있습니다.

호스팅 장소에는 도메인의 모든 페이지에 대한 요청에 대한 '전역 리디렉션'도 있습니다.

어느 쪽이든 전체 도메인에 대해 하나의 페이지 만 있으면되는 간단한 솔루션입니다.

htaccess 솔루션을 정말로 원한다면 다음 중 하나를 사용하십시오.

RewriteEngine on

RewriteRule ^(.*)$ http://www.example.com/  [R=permanent,L]

.. 실제 도메인으로 교체. SEO도 행복합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.