존재하지 않는 페이지를 방문해도 다른 페이지와 마찬가지로 기본 및 보조 링크가 계속 표시되지만 404 페이지에는 탐색 링크가 없습니다. 404 페이지에 탐색 링크 없음 도 참조하십시오 .
나는 해결책을 찾았지만 다른 것이 이것을 고칠 수 있다면 기쁘다 (아마도 여분의 모듈을 사용하지 않고).
존재하지 않는 페이지를 방문해도 다른 페이지와 마찬가지로 기본 및 보조 링크가 계속 표시되지만 404 페이지에는 탐색 링크가 없습니다. 404 페이지에 탐색 링크 없음 도 참조하십시오 .
나는 해결책을 찾았지만 다른 것이 이것을 고칠 수 있다면 기쁘다 (아마도 여분의 모듈을 사용하지 않고).
답변:
사용자 정의 모듈에서 페이지를 정의하여이를 수행 할 수 있습니다.
을 사용하여 "페이지를 찾을 수 없음"범주의 페이지를 작성하십시오 hook_menu()
.
function MODULE_menu() {
$items['page-not-found'] = array(
'title' => '',
'page callback' => 'MODULE_page_not_found',
'access callback' => TRUE,
);
return $items;
}
function MODULE_page_not_found() {
drupal_set_title('Page not found');
$cust_err = "";
$cust_err = $cust_err . "The requested page " . current_path() . " could not be found";
return $cust_err;
}
페이지 콜백은 current_path()
404 오류의 원인이되는 페이지 경로를 반환하는 데 사용 됩니다.
이동 관리> 구성> 시스템> 사이트 정보 및 입력 페이지를--찾을 수 없습니다 (에 정의 된 같은 이름 hook_menu
아래) 기본 404 (찾을 수 없음) 페이지 .
이제 오류 페이지가 다음 스크린 샷과 같이 나타납니다.
모든 탐색 링크와 오류를 생성하는 페이지 URL (원래의 페이지를 찾을 수 없음)이 포함되어 있음이 분명합니다. 그리고 @ Nikhil 이 위의 답변에서 언급 한 모듈 은 "요청한 페이지를 찾을 수 없습니다."를 출력합니다. 오류가 발생한 페이지의 URL을 포함하지 않습니다.
좋은 모듈 대안도 있습니다 :
표준 "404 페이지를 찾을 수 없음"을 표시하는 대신이 모듈은 URL에서 키워드를 검색합니다. 예를 들어 사용자가 http://example.com/does/not/exist 로 이동하면 이 모듈에서 검색을 수행합니다. "존재하지 않음"에 대해 404 페이지 대신 검색 결과를 표시합니다. 이렇게하면 다른 사이트 또는 검색 색인에서 링크 된 이전 URL에서 오는 방문자를 유지하는 데 도움이됩니다.
Drupal은 비싼 404 오류를 가지고 있습니다. '평균'모듈로드가있는 '평균'사이트에서 404를 전달하기 위해 서버에서 소비되는 60-100MB의 메모리를 볼 수 있습니다. 잘못된 .gif 링크가 있고 .css 파일이없는 페이지를 고려하십시오. 이 페이지는 페이지의 실제로드와 함께 2 개의 404를 생성합니다. 아마도 60MB가 아닌 해당 페이지에 180MB의 메모리를보고있을 것입니다.
사용자 정의 모듈에서 페이지를 정의하여이를 수행 할 수 있습니다.
hook_menu ()를 사용하여 "페이지를 찾을 수 없음"카테고리의 페이지를 작성하십시오.
function MODULE_menu() {
$items['page-not-found'] = array(
'title' => '',
'page callback' => 'MODULE_page_not_found',
'access callback' => TRUE,
);
return $items;
}
function MODULE_page_not_found() {
drupal_set_title('Page not found');
$cust_err = "";
$cust_err = $cust_err . "The requested page " . current_path() . " ould not be found";
return $cust_err;
}
거의 좋습니다. 그러나이 코드는 다음을 반환합니다.
"요청한 페이지를 찾을 수 없습니다"
current_path () 를 request_uri () 로 변경해야 하며 다음을 반환합니다.
"요청한 페이지 / request_uri을 (를) 찾을 수 없습니다"
t('The requested page "@path" could not be found.', array('@path' => request_uri()));
. 이렇게하면 사이트가 다국어 일 때 기본 Drupal 번역이 사용됩니다.