표준 URL이 http를 사용하도록하려면 어떻게해야합니까?


10

우리의 페이지에서 우리가 사용하는 메타 태그의 정규 메타 태그를 보여 모듈. 구성에서 우리는 [current-page:url:absolute]토큰 을 사용합니다 . 이것은 잘 작동하지만 문제는 HTTP 또는 HTTPS로 페이지에 액세스하는지 여부에 따라이 프로토콜이 표준 URL에 사용된다는 것입니다.

SEO 목적을 위해 표준 URL이 동일하고 두 프로토콜 모두에 HTTP를 사용하기를 원합니다.

우리는 이것을 어떻게 달성 할 수 있습니까?


2
Drupal에서이 작업을 수행하는 대신 기본적으로 .htaccess또는 Apache 구성을 통해 모든 트래픽을 HTTPS로 강제 전송합니다 . 문제 해결됨.
leymannx

답변:


8

드루팔 7

hook_html_head_alter()헤드 태그를 변경하도록 구현할 수 있습니다 . 다음은 테스트되지 않았지만 트릭을 수행해야합니다.

function MYMODULE_html_head_alter(&$head_elements) {
  foreach ($head_elements as $key => &$tag) {
    if (strpos($key, 'drupal_add_html_head_link:canonical:') === 0) {
      if (strpos('https://', $tag['#attributes']['href']) === 0) {
        $tag['#attributes']['href'] = str_replace('https://', 'http://', $tag['#attributes']['href']);
      }
    }
  }
}

2

메타 태그 모듈을 사용하면 [current-page : url : absolute] 토큰 대신 [current-page : url : relative] 토큰을 사용할 수 있습니다.

따라서 표준 태그는 다음과 같이됩니다 : http : //www.mywebsite [current-page : url : relative]


0

드루팔 8

노드 hook_ENTITY_TYPE_view_alter의 경우 처음부터 추가 된 곳 으로 사용해야 NodeViewController::view()합니다.

그리고 들어오는 모든 트래픽을 기본적으로 SSL로 리디렉션하면 더 좋을 것입니다 . 전체 사이트를 HTTPS로 만드는 방법은 무엇입니까?

/**
 * Implements hook_ENTITY_TYPE_view_alter().
 */
function MYMODULE_node_view_alter(array &$build, Drupal\Core\Entity\EntityInterface $entity, \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display) {
  if (isset($build['#attached']['html_head_link'])) {
    foreach ($build['#attached']['html_head_link'] as $key => $head) {
      if ((isset($head[0]['rel']) ? $head[0]['rel'] : FALSE) == 'canonical') {

        $url = \Drupal\Core\Url::fromRoute('<current>', [], ['absolute' => 'true'])
          ->toString();

        $url = str_replace('https://', 'http://', $url);

        $build['#attached']['html_head_link'][$key][0]['href'] = $url;
      }
    }
  };
}

난 그냥 결국 우리가 모든 헤드 태그를 찾을 것을 발견 hook_preprocess_html$variables['page']['#attached']배열이 변경 될 수 있습니다.


-2

나를 미치게하고 내가 틀렸다면 정정하십시오.하지만 HTTP로 URL을 하드 코딩 할 수는 없습니까?

누락 된 것이 있다고 확신하지만 토큰을 사용하는 대신 전체 URL을 입력하면 Drupal이 생성하는 페이지의 모든 변형에 대한 표준 URL로 해당 특정 URL로 끝납니다.

주의해야 할 점은 페이지의 별칭이 변경 될 경우 표준을 변경해야한다는 것을 기억해야하기 때문에 업데이트 악몽이 발생한다는 것입니다.


경우에 따라 도메인 액세스를 사용할 때와 같이 일부 기사는 특정 도메인에서만 사용 가능하며 하드 코딩 URL로 인해 연결이 끊길 수 있습니다.
Mołot
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.