전체 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
리디렉션 규칙을 벗어날 수 있다면 추가로 환호합니다 .
답변
혼란스럽고 과도하게 엔지니어링 된 .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;
} );
답변
@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 플러그인 저장소에서 사용 가능한 많은 유지 보수 플러그인 중 하나를 대신 고려할 수 있습니다.
플러그인 실행에 문제가 있으면 알려주세요 ?
답변
훨씬 간단한 솔루션을 원할 것입니다. 내 가정은 도메인에 대한 모든 요청에 대해 누구나 WP 페이지를 볼 필요가없는 한 페이지 만 보길 원한다는 것입니다.
HTML 페이지를 만들고 CSS로 스타일을 지정한 다음 해당 페이지를 호스팅 플랫폼의 다른 폴더에 넣으십시오. 페이지가 원하는 모양인지 확인하십시오.
그런 다음 도메인을 새 폴더로 지정하십시오. 대부분의 호스팅 플랫폼에서는 도메인의 기본 폴더를 지정할 수 있습니다. 도메인을 새 기본 폴더로 지정하십시오. 복잡한 htaccess 리디렉션, WP 플러그인 또는 WP에 연결하기위한 특수 필터가 필요하지 않습니다.
또는 모든 콘텐츠를 현재 도메인 루트 폴더 밖으로 옮기고 간단한 HTML 파일을 그 자리에 넣을 수 있습니다.
호스팅 장소에는 도메인의 모든 페이지에 대한 요청에 대한 ‘전역 리디렉션’도 있습니다.
어느 쪽이든 전체 도메인에 대해 하나의 페이지 만 있으면되는 간단한 솔루션입니다.
htaccess 솔루션을 정말로 원한다면 다음 중 하나를 사용하십시오.
RewriteEngine on
RewriteRule ^(.*)$ http://www.example.com/ [R=permanent,L]
.. 실제 도메인으로 교체. SEO도 행복합니다.