【问题标题】:removing query strings from canonical URL从规范 URL 中删除查询字符串
【发布时间】:2015-01-16 22:43:23
【问题描述】:

我使用 PHP 在我的静态网站上回显 <link rel="canonical" href="URL" /> 中的当前 URL,但不幸的是,它也会回显查询字符串。

http://www.example.com?querystring 在规范中得到回显,我试图找到一个回显 URL 的方法,忽略查询字符串及其后面的任何内容。

我目前正在使用。

有没有一种方法可以在全局模板中声明所有必要的代码,只要我需要没有查询字符串的 URL,只需 echo $url

【问题讨论】:

  • 抓取 URL 直到 '?' 的部分特点?应该比较简单。
  • 如何在 PHP 中指定?我使用的代码只是从服务器获取当前的确切 URL。
  • 嗯,URL 是一个字符串,所以有很多方法可以做到这一点,就像 DeiForm 给出的那样。看看字符串函数
  • 如何获取当前 URL? $_SERVER 变量?
  • 我正在使用<?php $url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; echo $url; ?>。有没有一种简单的方法可以让我声明一次代码以清除查询字符串并获取 URI,然后在我需要整个内容的任何地方简单地回显 $var?

标签: php html canonical-link


【解决方案1】:

假设您将 URL 放入变量中。然后我们将用分隔符“?”爆炸网址。然后只回显返回数组的第一个索引:

$url = http://www.example.com?querystring;
$array = explode("?", $url);
$yourUrl = $array[0];

你来了

【讨论】:

  • list($yourUrl) = explode("?", $url);
【解决方案2】:

例如,您可以使用 parse_url 并重新构建您的查询

$url = "http://www.example.com?querystring";

$newUrl = parse_url($url);

echo "http://".$newUrl['host'].$newUrl['path'];

【讨论】:

    【解决方案3】:

    使用 request.forwardURI 设置规范 uri,它会删除查询字符串参数

    【讨论】:

      猜你喜欢
      • 2011-02-02
      • 1970-01-01
      • 2016-07-22
      • 2011-03-28
      • 2019-04-19
      • 1970-01-01
      • 2018-12-08
      相关资源
      最近更新 更多