当前位置

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标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。