Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Добавить исключение в php


 Поделиться

Рекомендованные сообщения

Здравствуйте. Подскажите, кто в php понимает что нужно добавить в код, что бы сделать исключение для фильтра, у фильтра урлы все начинаются /?ocf=, то есть что бы noindex не применялся для страниц с ?ocf=

<?php
    $url = $_SERVER['REQUEST_URI'];
    if (strpos($url,'?') !== false) {
    echo '<meta name="robots" content="noindex, follow" />' . "\n";
    } else {
    echo '<meta name="robots" content="index, follow" />';
}
?>

 

Ссылка на комментарий
Поделиться на других сайтах


Как я и ожидал от своих кривых рук ничерта не получилось))) С if isset($this->request->get[ocf], выходит ошибка

Сделал следующую конструкцию, не знаю насколько это правильно, но в любом случае работает... Остался нюанс, у фильтра есть пагинация и её нужно как то убрать из индексации, то есть что бы пагинация была noindex.

<?php
    $url = $_SERVER['REQUEST_URI'];
    if (strpos($url,'?') !== false and strpos($url,'?ocf') !=true) {
    echo '<meta name="robots" content="noindex, follow" />' . "\n";
    } else {
    echo '<meta name="robots" content="index, follow" />';
}

 

Ссылка на комментарий
Поделиться на других сайтах


23.10.2022 в 18:02, aka75 сказал:

Как я и ожидал от своих кривых рук ничерта не получилось))) С if isset($this->request->get[ocf], выходит ошибка

Сделал следующую конструкцию, не знаю насколько это правильно, но в любом случае работает... Остался нюанс, у фильтра есть пагинация и её нужно как то убрать из индексации, то есть что бы пагинация была noindex.

<?php
    $url = $_SERVER['REQUEST_URI'];
    if (strpos($url,'?') !== false and strpos($url,'?ocf') !=true) {
    echo '<meta name="robots" content="noindex, follow" />' . "\n";
    } else {
    echo '<meta name="robots" content="index, follow" />';
}

 

Это дичь.

Если ошибка $this->request->get['ocf']

Значит условие где-то в index.php или в шаблоне, или кавычки не установили

Значит isset($_GET['ocf'])

 

Изменено пользователем buslikdrev
Ссылка на комментарий
Поделиться на других сайтах

23.10.2022 в 22:48, buslikdrev сказал:

Это дичь.

Если ошибка $this->request->get['ocf']

Значит условие где-то в index.php или в шаблоне, или кавычки не установили

Значит isset($_GET['ocf'])

 

нет, сам код  с ошибкой

if isset($this->request->get[ocf]

Где скобки? Где апострофы

Код был дан только как толчок к решению

Ссылка на комментарий
Поделиться на других сайтах

23.10.2022 в 19:02, aka75 сказал:

Как я и ожидал от своих кривых рук ничерта не получилось))) С if isset($this->request->get[ocf], выходит ошибка

Сделал следующую конструкцию, не знаю насколько это правильно, но в любом случае работает... Остался нюанс, у фильтра есть пагинация и её нужно как то убрать из индексации, то есть что бы пагинация была noindex.

<?php
    $url = $_SERVER['REQUEST_URI'];
    if (strpos($url,'?') !== false and strpos($url,'?ocf') !=true) {
    echo '<meta name="robots" content="noindex, follow" />' . "\n";
    } else {
    echo '<meta name="robots" content="index, follow" />';
}

 

<?php
  //check if isset get parameter ocf or page
  if(isset($_GET['ocf']) || isset($_GET['page'])){
  	echo '<meta name="robots" content="noindex, nofollow" />' .PHP_EOL;
  }else{
  	echo '<meta name="robots" content="index, follow" />';
  }

?>

 

нюанс!!!! если у фильтра есть пагинация, и он сохраняет гет параметр фильтрации в запросе, то пагинация и так попадает под проверку.
т.е. не надо делать проверку на пагинацию по сколку и так есть параметр ?ocf в запросе, а для него исключение есть

 

site.com/products/phones/?ocf=brand_1&page_=2

Изменено пользователем SevenTM
Ссылка на комментарий
Поделиться на других сайтах


26.10.2022 в 12:20, SevenTM сказал:
<?php
  //check if isset get parameter ocf or page
  if(isset($_GET['ocf']) || isset($_GET['page'])){
  	echo '<meta name="robots" content="noindex, nofollow" />' .PHP_EOL;
  }else{
  	echo '<meta name="robots" content="index, follow" />';
  }

?>

 

неверно

'ocf'
может быть внутренним параметром (его может не быть в $_GET )
$this->get = $this->clean($_GET);

использование $_GET - только в исключительных случаях

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.