您在這裡

Drupal站canonical相對網址改絕對網址

James Qi 在 2022年7月20日 - 11:01 發表

同事在使用工具對網站進行檢查的時候遇到這種報錯:

查看對應網頁的html代碼類似如下:

<!DOCTYPE html>
<html lang="zh-hant" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Generator" content="Drupal 7 (http://drupal.org)" />
<link rel="canonical" href="/" />
<link rel="shortlink" href="/node/1" />
<meta name="description" ...

我先查看了一下我們的各個Drupal站,奇怪的是有一部分站點canonical是絕對地址,有一部分站點canonical是相對地址。

在網上搜索了一下解決辦法,有說安裝Global Redirect的,有說安裝Metatag然後設置Canonical URL為[site:url][current-page:url:relative]的,還有說通過鈎子函數theme_html_head_alter()來進行修改替換的。

我嘗試了修改html.tpl.php,是可以實現的,代碼如下:

...
<head>
<?php
$head = str_replace('<link rel="canonical" href="/', '<link rel="canonical" href="https://'.$_SERVER['SERVER_NAME'].'/', $head);
?>
print $head;
...

修改後再查看首頁html代碼:

<!DOCTYPE html>
<html lang="zh-hant" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Generator" content="Drupal 7 (http://drupal.org)" />
<link rel="canonical" href="https://example.com/" />
<link rel="shortlink" href="/node/1" />
<meta name="description"  ...

再用工具檢查,這個地方就不報錯了。

發表新回應

Plain text

  • 不允許使用 HTML 標籤。
  • 自動將網址與電子郵件地址轉變為連結。
  • 自動斷行和分段。