Дубли страниц вида http://www.site.ru/?p=51 и 301 редирект

Тема в разделе "Общие вопросы", создана пользователем GreatALF, 10 фев 2017.

  1. GreatALF

    GreatALF Пользователь

    Сообщения:
    64
    Симпатии:
    1
    Была в последней строке пропущена скобочка...в конце 2 скобочки должно быть. if (!queries) $this->responce->redirect($this->url->link('common/home');

    Поставил вывалил ошибку

    Notice: Undefined property: Action::$request in /var/www/greatalf/data/www/pzvk.ru/system/storage/modification/catalog/controller/common/home.php on line 2Notice: Trying to get property of non-object in /var/www/greatalf/data/www/pzvk.ru/system/storage/modification/catalog/controller/common/home.php on line 2Notice: Undefined property: Action::$responce in /var/www/greatalf/data/www/pzvk.ru/system/storage/modification/catalog/controller/common/home.php on line 4
     
  2. GreatALF

    GreatALF Пользователь

    Сообщения:
    64
    Симпатии:
    1
    Подставил в 1 строке get['route']; - ошибок не вызывает но и не работает :(

    $queries = $this->request->get['route'];
    unset($queries['route']);
    if (!$queries) $this->responce->redirect($this->url->link('common/home'));
     
  3. GreatALF

    GreatALF Пользователь

    Сообщения:
    64
    Симпатии:
    1
    Это, Я вот 2 строчку не понимаю, в первой мы ей присвоили, а во второй ее разрушили, потом спрашиваем, ответит или нет...

    Вообщем не победил, что только не подставлял
    $queries = $this->request->get['url'];
    unset($queries['url']);
    if (!$queries) $this->responce->redirect($this->url->link('common/home'));

    каментил 2 строку, пофиг :(
     
  4. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    687
    Ничего не разрушали, а удалили один элемент
    И по идее массив должен стать пустым
    Если не пустой - то редирект

    Опять же

    $this->response->redirect(
    Повторю - писал с листа, спокойно мог ошибиться буковками
     
  5. GreatALF

    GreatALF Пользователь

    Сообщения:
    64
    Симпатии:
    1

    Так а это, у функции get что должно быть?

    $queries = $this->request->get['route'];
    unset($queries['route']);
    if (!$queries) $this->response->redirect($this->url->link('common/home'));

    или url ?
     
  6. GreatALF

    GreatALF Пользователь

    Сообщения:
    64
    Симпатии:
    1
    Notice: Undefined property: Action::$request in /var/www/greatalf/data/www/pzvk.ru/system/storage/modification/catalog/controller/common/home.php on line 2Notice: Trying to get property of non-object in /var/www/greatalf/data/www/pzvk.ru/system/storage/modification/catalog/controller/common/home.php on line 2Notice: Undefined property: Action::$response in /var/www/greatalf/data/www/pzvk.ru/system/storage/modification/catalog/controller/common/home.php on line 4
     
  7. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    687
    Код:
    $queries = $this->request->get;
    unset($queries['route']);
    if (!$queries) $this->response->redirect($this->url->link('common/home'));
    Спрашивайте что непонятно
    Но не выдумывайте, того чего нет
     
  8. GreatALF

    GreatALF Пользователь

    Сообщения:
    64
    Симпатии:
    1
    :(
    Notice: Undefined property: Action::$request in /var/www/greatalf/data/www/pzvk.ru/system/storage/modification/catalog/controller/common/home.php on line 2Notice: Trying to get property of non-object in /var/www/greatalf/data/www/pzvk.ru/system/storage/modification/catalog/controller/common/home.php on line 2Notice: Undefined property: Action::$response in /var/www/greatalf/data/www/pzvk.ru/system/storage/modification/catalog/controller/common/home.php on line 4
     
  9. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    687
    GreatALF нравится это.
  10. GreatALF

    GreatALF Пользователь

    Сообщения:
    64
    Симпатии:
    1
    Блин....
    А у меня если я ставлю в /pzvk.ru/catalog/controller/common/home.php
    ругается почимуто на
    /system/storage/modification/catalog/controller/common/home.php
     
  11. GreatALF

    GreatALF Пользователь

    Сообщения:
    64
    Симпатии:
    1
    Блин!!! Бро!!!! заработало!!!!!

    Я НЕ ВТО БЛИН МЕСТО ВСТАВЛЯЛ!!!!

    Вот в таком виде заработало :)

    <?php
    class ControllerCommonHome extends Controller {
    public function index() {
    $this->document->setTitle($this->config->get('config_meta_title'));
    $this->document->setDescription($this->config->get('config_meta_description'));
    $this->document->setKeywords($this->config->get('config_meta_keyword'));

    if (isset($this->request->get['route'])) {
    $this->document->addLink($this->config->get('config_url'), 'canonical');
    }

    $data['column_left'] = $this->load->controller('common/column_left');
    $data['column_right'] = $this->load->controller('common/column_right');
    $data['content_top'] = $this->load->controller('common/content_top');
    $data['content_bottom'] = $this->load->controller('common/content_bottom');
    $data['footer'] = $this->load->controller('common/footer');
    $data['header'] = $this->load->controller('common/header');

    $this->response->setOutput($this->load->view('common/home', $data));
    $queries = $this->request->get;
    unset($queries['route']);
    if (!empty($queries)) $this->response->redirect($this->url->link('common/home'));
    }
    }


    СПАСИБО ТЕБЕ ОГРОМНОЕ ЗА ПОМОЩЬ!!!
     
  12. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    687
    НЕТ!!!
    Это код должен быть в самом начале
     
  13. GreatALF

    GreatALF Пользователь

    Сообщения:
    64
    Симпатии:
    1
    В каком именно месте? в начале чего? функции? или класса? или вообще самостоятельным кодом?

    Если самостоятельным кодом - то не работает :(

    А вот в таком состоянии все как часы...... :) www.pzvk.ru

    Кстати, а для поисковых....как это редирект выглядит? нужно, желательно 404 чтобы выдавал.
     
    Последнее редактирование: 13 фев 2017
  14. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    687
    в начале подразумевается - после index()

    Иначе у вас это не должно работать
     
  15. GreatALF

    GreatALF Пользователь

    Сообщения:
    64
    Симпатии:
    1
    Странно но работает :)

    по правильному так?

    <?php
    class ControllerCommonHome extends Controller {
    public function index() {
    $queries = $this->request->get;
    unset($queries['route']);
    if (!empty($queries)) $this->response->redirect($this->url->link('common/home'));
    $this->document->setTitle($this->config->get('config_meta_title'));
    $this->document->setDescription($this->config->get('config_meta_description'));
    $this->document->setKeywords($this->config->get('config_meta_keyword'));

    if (isset($this->request->get['route'])) {
    $this->document->addLink($this->config->get('config_url'), 'canonical');
    }

    $data['column_left'] = $this->load->controller('common/column_left');
    $data['column_right'] = $this->load->controller('common/column_right');
    $data['content_top'] = $this->load->controller('common/content_top');
    $data['content_bottom'] = $this->load->controller('common/content_bottom');
    $data['footer'] = $this->load->controller('common/footer');
    $data['header'] = $this->load->controller('common/header');

    $this->response->setOutput($this->load->view('common/home', $data));

    }
    }
     
  16. GreatALF

    GreatALF Пользователь

    Сообщения:
    64
    Симпатии:
    1
    Если так то тоже работает. Вообщем и так и так работает :)
     
  17. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    687
    Правильно так
    А как было неправильно

    Потому что редирект нужно делать как можно раньше, а не нагружать сервер ненужными запросами
     
  18. GreatALF

    GreatALF Пользователь

    Сообщения:
    64
    Симпатии:
    1
    Принял :) Спасибо все супер!
    Остался один вопрос как это редирект выглядит для поисковиков? нужно, желательно 404 чтобы выдавал.
     
  19. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    687
    Зачем 404?
    301 самый раз

    $this->response->redirect($this->url->link('common/home'), 301);
     
  20. GreatALF

    GreatALF Пользователь

    Сообщения:
    64
    Симпатии:
    1
    А да, логично , да.... ступил. Спасибо :)