PHP добавить в link rel=canonical текущий url

130
13 октября 2019, 11:50

Есть несколько десятков страниц, хтмл -код которых генерируется php. При этом все url сайта статичные, динамически не генерируются.

Подскажите, как указать для них в link rel=canonical текущий url?

Что-то такое должно быть:

<link rel="canonical" href="<?$_SERVER['REQUEST_URI']?>">

Я в суперглобальных переменных не понимаю ничего. Но, что-то, видимо похожее? Подскажите, как текущий урл сюда подставить?

Спасибо!

Вот такой код, генерирующий html:

<?php
require_once './src/functions.php';
$pageData = [
    'avtovo'=>[
        'title'=>'Автово',
        'query'=>'`metro` LIKE "Автово%"'
    ],
    'adm'=>[
        'title'=>'Адмиралтейская',
        'query'=>'`metro` LIKE "Адмиралтейская%"'
    ],
    'akadem'=>[
        'title'=>'Академическая',
        'query'=>'`metro` LIKE "Академическая%"'
    ],
    //еще 50 таких элементов
    'chkalov'=>[
        'title'=>'Чкаловская',
        'query'=>'`metro` LIKE "Чкаловская%"'
    ],
    'elektrosila'=>[
        'title'=>'Электросила',
        'query'=>'`metro` LIKE "Электросила%"'
    ],
];
$page = $_GET['page'];
if(is_null($page)||!isset($pageData[$page])){
    header('HTTP/1.0 404 Not Found',TRUE,404);
    die();
}?>
DOCTYPE html
<html>
<head>
<title> Квартиры у метро <?=$pageData[$page]['title']?> СПб за <?=date('d.m',strtotime(config('db_updated').' -10 day'))?> - <?=date('d.m.Y',strtotime(config('db_updated')))?></title>
<meta name="description" content="Адреса квартир в аренду по станциям метро Санкт-Петербурга - <?=$pageData[$page]['title']?>" />
<meta name="keywords" content="ст. метро Автово Петербург снять квартиру аренда" />
<meta  name="viewport"  content="initial-
scale=1.0, width=device-width" />
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="Last-Modified" content="<?=date('D, d M Y H:i:s',strtotime(config('db_updated')))?> GMT">
<meta name="yandex-verification" content="f83b3e09a273f602" />
<meta name="revisit-after" content="1 days">
<meta property="og:title" content="Квартиры в Санкт-Петербурге"/>
<link rel="stylesheet" href="1style1.css" type="text/css">
<link rel="icon" href=​"favicon.ico" type="image/x-icon">      
  </head>
  <body>
    <header>
<div class="column-left">
  <h1 itemprop="name">Аренда В СПб метро <?=$pageData[$page]['title']?></h1>
</div>
<div class="column-center">&nbsp;</div>
<div class="column-right image10" itemprop="image" title="Фото Петербург">
  <p>&nbsp;</p>
  <p>&nbsp;</p>
</div></header>

Снять квартиру у метро ""

<h3 style="display:inline">Аренда квартир  у метро <?=$pageData[$page]['title']?>. Данные за последние 10 дней с <?=date
('d.m',strtotime(config('db_updated').' -10 day'))?> по <?=date('d.m.Y',strtotime(config
('db_updated')))?></h3> . <br /> <div class="cover-table" title="1 + Телефон,  2 + Мебель,  3 + Холодильник,  4 + Стиральная машина"> <table class="responstable">  <tr>  <th><span><a name=flats></a>Кол-во<br /> комнат</span></th>  <th data-th=", Характеристики">Р-н, </th>  <th>Адрес</th>  <th>Метро</th>  <th>Эт</th>  <th>S <br /><br />о<br />б<br />щ</th>  <th>S <br /><br />к<br />о<br />м<br />н</th>  <th>S<br /><br />к<br />у<br />х</th>  <th>Т<br />е<br />л</th>   <th>М<br />е<br />б</th>  <th>Х<br />о<br />л</th>   <th>С<br />т<br />М</th>  <th><strong>Цена</strong></th>  <th>Срок</th>  <th>Примечания</th>    </tr>  <?php foreach(property_list($pageData[$page]['query']) as $item):?>
           <tr>
        <td><?=$item['rooms_s']?></td>
        <td><?=$item['area']?></td>
        <td><?=$item['address']?></td>
        <td><?=$item['metro']?></td>
        <td><?=$item['floor']?></td>
        <td><?=$item['sq_total']?></td>
        <td><?=$item['sq_room']?></td>
        <td><?=$item['sq_kitchen']?></td>
        <td><?=($item['phone']?'+':'-')?></td>
        <td><?=($item['furniture']?'+':'-')?></td>
        <td><?=($item['fridge']?'+':'-')?></td>
        <td><?=($item['st_metro']?'+':'-')?></td>
        <td><?=$item['price']?></td>
        <td><?=$item['term']?></td>
        <td><?=$item['other']?></td>
    </tr> <?php endforeach;?>  </table><div>

И есть скрипт function.php, где указано вот что:

function property_list($where=FALSE){
    $db = db();
    //return $db->query("SELECT * FROM property ".($where?'WHERE '.$where:'').' ORDER BY `rooms`',PDO::FETCH_ASSOC);
    return $db->query("SELECT * FROM property ".($where?'WHERE '.$where:'').' ORDER BY `created_at` DESC',PDO::FETCH_ASSOC);

Насколько я понимаю, именно это $where?'WHERE '.$where: и означает текущий url

Answer 1

Абсолютную ссылку на текущий url можно вычислить так:

"http" . (empty($_SERVER['HTTPS'])? '': 's') . "://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

ссылка на документацию

READ ALSO
php curl не видит локальные домены

php curl не видит локальные домены

У меня собрано окружение на mac os valetДва домена в домен1

130
Разные favicon для разных сайтов на одной CMS

Разные favicon для разных сайтов на одной CMS

Ситуация: одна CMS, на ней 3 сайтаВ Яндексе перепутались фавиконки у всех сайтов, точнее у всех 3х стала одна и та же

131
Yii2 vs Laravel

Yii2 vs Laravel

В yii есть такая реализация приложения как:

139
Как можно связать функцию валюты на несколько языках?

Как можно связать функцию валюты на несколько языках?

Я использую полиленг и вукомерсИ появилась нужда сделать несколько переводов валют? Я использую вот такой скрипт

137