За последние 24 часа нас посетили 38256 программистов и 1722 робота. Сейчас ищут 586 программистов ...

header location 301 редирект не работает

Тема в разделе "PHP для новичков", создана пользователем bogdan_titomir, 27 июн 2018.

  1. bogdan_titomir

    bogdan_titomir Новичок

    С нами с:
    7 окт 2017
    Сообщения:
    159
    Симпатии:
    2
    Камрады подскажите где ошибка, заранее спасибо!

    PHP:
    1. $url_old = 'http://235test.gigal.uz/'.$cannonical.@$vars['subCatFileName'].'/index.html';
    2. $url_new = 'http://235test.gigal.uz/'.$cannonical.@$vars['subCatFileName'].'/';
    3.  
    4. if($_SERVER['REQUEST_URI'] == $url_old) {
    5. header("Location: ".$url_new,TRUE,301);
    6. exit();
    7. }
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.860
    Симпатии:
    657
    REQUEST_URI не содержит схему, хост и т.п.
    --- Добавлено ---
    /path?params
     
    bogdan_titomir нравится это.
  3. bogdan_titomir

    bogdan_titomir Новичок

    С нами с:
    7 окт 2017
    Сообщения:
    159
    Симпатии:
    2
    Спасибо бро, не заметил.
     
  4. bogdan_titomir

    bogdan_titomir Новичок

    С нами с:
    7 окт 2017
    Сообщения:
    159
    Симпатии:
    2
    PHP:
    1. if (SITE_URL.$_SERVER['REQUEST_URI'] == $url_old_cat) {
    2. header("Location: ".$url_new_cat,TRUE,301);
    3. }
    4.  
    5. if (SITE_URL.$_SERVER['REQUEST_URI'] == $url_old_keyword) {
    6. header("Location: ".$url_new_keyword,TRUE,301);
    7. }
    Верхний редирект работает а нижний нет, почему?
     
  5. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    223
    Симпатии:
    17
    в подобных случаях делаю вардамп переменных, чтобы выяснить, какая из них содержит ошибочное значение
    PHP:
    1. var_dump($url_old_keyword);
     
  6. bogdan_titomir

    bogdan_titomir Новичок

    С нами с:
    7 окт 2017
    Сообщения:
    159
    Симпатии:
    2
    Все правильно, наверно нельзя 2 раза header location использоваться в файле
     
  7. bogdan_titomir

    bogdan_titomir Новичок

    С нами с:
    7 окт 2017
    Сообщения:
    159
    Симпатии:
    2
    100 раз перепроверил все таки ошибка была в строке
     
  8. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.860
    Симпатии:
    657
    exit куда подевался? :)
    --- Добавлено ---
    Не хоШь повсюду пихать exit, используй полную форму ветвления (в данном случае elseif) или выбор.
     
  9. bogdan_titomir

    bogdan_titomir Новичок

    С нами с:
    7 окт 2017
    Сообщения:
    159
    Симпатии:
    2
    exit() надо прописать если под хеадером php и html код?
     
  10. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.860
    Симпатии:
    657
    чЁ? Если ты раз отправляешь заголовок, понуждающий к редиректу, то контент особо не нужен уже, только объем ответа увеличивает. А если ты два раза подряд пытаешься отправить такой заголовок, то это вообще полная хрень получается, хотя у ф-ции header есть возможность подменять заголовок того же типа его более новой версией, что ты вроде и пытаешься сделать, но этот функционал для другого нужен, поэтому делай более привычным способом, т.е. один header Location на запрос.