기본 페이지 / 노드를 숨기려면 어떻게합니까?


22

Drupal은 기본적으로 노드 경로에 지정된 페이지 (기본 홈페이지)와 함께 제공됩니다 .

사용자가 사이트에 도달하지 못하게하고 사이트의 실제 홈페이지로 리디렉션하는 방법은 무엇입니까?


@kiamlaluno에서 제안한 솔루션을 사용하여 노드를 다른 경로로 리디렉션했습니다.

답변:



8

/ node에서 첫 페이지로 사용하려는 페이지로 경로 재지 정하는 경로 별명을 작성하십시오.


1
URL 별칭 모듈, / node를 <front> 또는 index.php로 별칭 지정하면 작동하지 않습니다. 난 그냥 전달하려고 해요 /

5
이상하게도 <node>에 / node를했는데 정상적으로 작동합니다.
Sean Bannister

@john과 마찬가지로 별칭의 UI를 사용하면 첫 페이지로 설정할 수 없습니다. 대신 리디렉션 모듈을 사용해야했습니다.
Postscripter

6

/ node의 페이지 콜백을 변경하여 오류 404 페이지를 표시하는 것을 선호합니다.
/ node에 액세스 할 때 항상 사용자 정의 404 페이지가 표시됩니다.

function yourmodule_menu_alter(&$items) {
    $items['node']['page callback'] = 'drupal_not_found';      
}

4
<?php
function MY_MODULE_menu_alter(&$callbacks) {
unset($callbacks['node']);
}
?>

또는 settings.php에 추가하십시오 (URL 인바운드 물건)

<?php
function custom_url_rewrite_inbound(&$result, $path, $path_language) {
  if ($path == 'node') {
    $result = ''; 
  }
}
?>

2

Redirect 모듈을 사용 node했습니다 <front>. 에서 에 새로운 301 리디렉션을 추가했습니다 .


1

berdirs 답변과 유사하게, 우리가 빌드 한 커스텀 배포판의 일부인 모듈에 다음 코드가 포함되어 있습니다.

function HOOK_menu_alter(&$items) {
  $items['node']['page callback'] = '_HOOK_empty_home';
}

function _HOOK_empty_home() {
  drupal_set_title('');
  return '';
}

이렇게하면 '노드'경로를 첫 페이지로 유지하고 컨텍스트를 사용하여 필요한 첫 페이지를 작성하기 위해 블록을 배치 할 수 있습니다.


1

게시되지 않은 / node에 매핑 된 페이지를 만들 수 있습니다. 따라서이 경로를 호출 할 사용자는 액세스가 금지 된 페이지를 갖게됩니다


1

가장 쉬운 해결책은 홈페이지가되고 싶은 페이지를 만들고 URL을 / node로 설정하는 것이 었습니다. 그런 다음 / admin / config / system / site-information에서 기본 프론트 페이지를 / node로 설정하십시오. 누군가가 실제로 입력하지 않으면 URL에 "/ node"가 표시되지 않습니다. 홈페이지 URL을 / node로 설정하려는 경우 빠르고 쉽고 깨끗합니다.


1

노드 URL을 사용하여 새 페이지를 만들면 사람들이 메시지를 리디렉션하여 첫 페이지를 방문하거나 카테고리를 선택할 수 있습니다.


1

나는 여러 가지를 시도했다. 그런 다음 Drupal 7 및 8의 경우 코드를 작성하지 않고도 가장 쉬운 것으로 나타났습니다.

node_page_disable, 전역 리디렉션 및 리디렉션 모듈을 다운로드하여 활성화하십시오.

(참고 : node_page_disable 모듈은 / node를 404 not found 오류 페이지로 리디렉션합니다.)

그런 다음 / node-> front page에 대한 리디렉션을 추가하십시오.

리디렉션은 / node 및 / node /를 첫 페이지로 리디렉션합니다.

유용한 기사 : https://www.drupalaid.com/blog/3-things-you-should-hide


D8에서 볼 수 있으므로 drush @example.com views-disable frontpage끕니다. 그래도 다른 일이 끝날 때까지 404를 얻습니다.
colan

0

노드를 작성한 후 사이트 구성-> 사이트 정보로 이동하여 홈 페이지를 노드의 경로로 설정하십시오. 따라서 첫 번째 노드 인 경우 node / 1이됩니다.

편집 : 기본적으로 '앞 페이지로 승격'을 선택하면 해당 페이지가 사라지는 노드를 만들면됩니다. 사이트 정보 단계는 해당 노드를 실제 프론트 페이지로 만듭니다.


1
사실이지만 /node여전히 도달 할 수 있지만 기본적으로 표시되지 않습니다.
Laxman13

나는 그가 요구 한 것을 잘못 읽었습니다. 경로 리디렉션 http://drupal.org/project/path_redirect 모듈은 어떻습니까?
Mike L.

1
불행히도 경로 리디렉션을 사용하면 기존 경로에서 리디렉션 할 수 없습니다. 경로를 재 지정하려는 경로가 유효한 경로인지 확인하고 경로가 올바른 경우 경로 재 지정이 작성되지 않고 경고가 표시됩니다.
Laxman13

시원한. 나는 그것을 한동안 사용하지 않았으므로 긍정적이지 않았습니다. 감사!
Mike L.

0

규칙 모듈을 사용하여 페이지를보기 전에 URL을 확인하고 원하는 경우 사용자를 다른 페이지로 리디렉션 할 수 있습니다.

  • 이벤트가 포함 된 규칙 추가 : 내용을 볼 예정
  • 조건 추가 : 커스텀 PHP 코드를 실행 하고 경로를 확인하십시오
  • 작업 추가 : 페이지 리디렉션리디렉션 할 경로를 선택하십시오.

이는 심각한 성능 저하를 초래할뿐만 아니라 매우 안전하지 않은 것으로 간주해야합니다. 모든 부작용과 단점이 잘 알려져 있지 않는 한 "커스텀 PHP 실행"을 제안해서는 안됩니다. -1입니다.
berkes

@berkes 규칙이 모든 페이지로드를 검사하여 사이트 속도를 늦추기 때문이라고 가정합니다. "커스텀 PHP 실행"이 항상 눈에 띄는 이유는 무엇입니까? 분명히 최종 사용자 사용에는 좋지 않지만 개발자 사용에도 단점이 있습니까? 미안하지만 Drupal과 함께 할 수있는 최선을 다하기 위해 열심히 노력하고 "입장"을 배웠습니다. (필요한 경우 두 번째 부분을 자체 질문으로 추가 할 수 있음)
Laxman13

이것이 논의 될 수있는 몇 가지 예제 영역 (블록, 뷰 인수, php 필터 등)과 함께 새로운 Q " 'custom'PHP 사용의 단점은 무엇입니까?"를 고려하십시오.
berkes

0

몇 년 전의 인기있는 질문으로 이미 흥미로운 답변이 있습니다. 그러나 무엇을 추측하십시오 : "요즘에는 모듈이 있습니다 ... 실제로 2 개가 있습니다!" (이전 답변에는 언급되지 않았습니다).

자세한 내용은 계속 읽으십시오 ... (견적은 프로젝트 페이지에서 가져옴) ...

노드 페이지 관리자 (D6 또는 D7) :

이 모듈은 / node 페이지 액세스 를 처리하기 위해 관리 설정 패널을 추가합니다 . 활성화되면 세 가지 가능한 구성이 있습니다.

  • 코어-Drupal 코어는 평소와 같이 노드 페이지 액세스를 처리합니다. '콘텐츠 액세스'권한이있는 모든 사용자
  • 비활성화-아무도 / node에 액세스 할 수 없습니다. '페이지를 찾을 수 없음'(404)을 반환합니다.
  • 권한 별-액세스는 새로운 권한 인 '액세스 노드 페이지'에 의해 처리됩니다.

노드 페이지 비활성화 (rc2 버전이지만 D6 또는 D7) :

사용하지 않을 때 경로 / 노드를 쉽게 UI에 액세스하고 비활성화 할 수 있습니다 . 이는 프로덕션 확인 모듈 의 보안 고려 사항에서 영감을 얻은 것 입니다.


-1

가장 좋은 방법은 template_preprocess_page 함수에서 노드를 숨기는 것입니다

function template_preprocess_page(&$variables) {
    if ($variables['is_front'] == 1) {
        if (isset($variables['page']['content']['system_main'])) {
            unset($variables['page']['content']['system_main']);
        }
    }
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.