Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не работает 301 редирект

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: header('HTTP/1.1 301 Moved Permanently');
dmaw
Отправлено: 24 Марта, 2015 - 12:29:07
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


Помог: 0 раз(а)




Здравствуйте!

Сделал в php-скрипте редирект:

PHP:
скопировать код в буфер обмена
  1. header('HTTP/1.1 301 Moved Permanently');
  2. header('Location: /page5');


В браузере меня отлично редиректит, а вот заголовок отдает 200 Ок

Если писать в htaccess, то с заголовками всё отлично:

redirect 301 /page4 /page5

Проблема в том, что страниц для редиректа дохрена и прописывать вручную не вариант.
Не понимаю почему сервер не отдаёт 301 редирект через php?
 
 Top
Ch_chov
Отправлено: 24 Марта, 2015 - 13:00:30
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




200 наверно для page5 страницы.
 
 Top
armancho7777777 Супермодератор
Отправлено: 24 Марта, 2015 - 14:02:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




 
 Top
dmaw
Отправлено: 24 Марта, 2015 - 20:05:31
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


Помог: 0 раз(а)




armancho7777777 пишет:
header('Location: /page5', true, 301);

Не помогло.
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Редирект отсутствует
  3. Полный ответ сервера по запрашиваемому адресу:
  4. (
  5.     [0] => HTTP/1.1 200 OK
  6.     [Server] => nginx/1.4.4
  7.     [Date] => Tue, 24 Mar 2015 18:02:12 GMT
  8.     [Content-Type] => text/html; charset=UTF-8
  9.     [Connection] => close
  10.     [X-Powered-By] => PHP/5.2.17
  11.     [Expires] => Thu, 19 Nov 1981 08:52:00 GMT
  12.     [Cache-Control] => no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  13.     [Pragma] => no-cache
  14.     [Set-Cookie] => PHPSESSID=71eljgmasv01sa7qkbbt8uvi97; path=/
  15.     [Vary] => Accept-Encoding,User-Agent
  16. )

Если прописать редирект в htaccess, то получаю такой ответ:
CODE (htmlphp):
скопировать код в буфер обмена
  1. 301 редирект (перемещено постоянно) на адрес
  2. http://site.ru/page5
  3.  
  4. Полный ответ сервера по запрашиваемому адресу:
  5. (
  6.     [0] => HTTP/1.1 301 Moved Permanently
  7.     [Server] => Array
  8.         (
  9.             [0] => nginx/1.4.4
  10.             [1] => nginx/1.4.4
  11.         )
  12.  
  13.     [Date] => Array
  14.         (
  15.             [0] => Tue, 24 Mar 2015 18:03:17 GMT
  16.             [1] => Tue, 24 Mar 2015 18:03:17 GMT
  17.         )
  18.  
  19.     [Content-Type] => Array
  20.         (
  21.             [0] => text/html; charset=iso-8859-1
  22.             [1] => text/html; charset=UTF-8
  23.         )
  24.  
  25.     [Content-Length] => 250
  26.     [Connection] => Array
  27.         (
  28.             [0] => close
  29.             [1] => close
  30.         )
  31.  
  32.     [Location] => http://site.ru/page5
  33.     [1] => HTTP/1.1 200 OK
  34.     [X-Powered-By] => PHP/5.2.17
  35.     [Expires] => Thu, 19 Nov 1981 08:52:00 GMT
  36.     [Cache-Control] => no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  37.     [Pragma] => no-cache
  38.     [Set-Cookie] => PHPSESSID=33csinfimlcjbhdtni13ccvco2; path=/
  39.     [Vary] => Accept-Encoding,User-Agent
  40. )
 
 Top
armancho7777777 Супермодератор
Отправлено: 25 Марта, 2015 - 10:01:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




dmaw,Вы чего хотите-то ?
Какая страница перемещена, и на какую ?
Страница '/page5' перемещена на '/page6',
то на странице '/page5' редирект на '/page6' со статусом 301.
Всё. У "/page6" будет статус 200.
(Добавление)
dmaw пишет:
PHP:
скопировать код в буфер обмена
  1. [Location] => http://site.ru/page5
  2.     [1] => HTTP/1.1 200 OK
 
 Top
dmaw
Отправлено: 25 Марта, 2015 - 12:12:20
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


Помог: 0 раз(а)




На странице /page4 пишу php-редирект на страницу /page5 и проверяю ответ сервера, получаю 200.
PHP:
скопировать код в буфер обмена
  1. header('HTTP/1.1 301 Moved Permanently');
  2. header('Location: /page5');


На странице /page4 пишу php-редирект на страницу /page5 вот так:

и в htaccess пишу:
CODE (htmlphp):
скопировать код в буфер обмена
  1. redirect 301 /page4 /page5

проверяю ответ сервера, получаю 301.

P.S. В htaccess есть другие строки, может быть они влияют на настройки сервера из-за чего php-редирект не отдаёт 301?
 
 Top
DeepVarvar Супермодератор
Отправлено: 25 Марта, 2015 - 13:19:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




dmaw пишет:
и в htaccess пишу
Пиши в одном только месте, или там или там.
(Добавление)
dmaw пишет:
проверяю ответ сервера, получаю 200.
Как ты его проверяешь? Там два запроса должны быть. Первый запрос получает 301 и локейшн, второй уже 200 с той страницы куда его отпнули.
 
 Top
dmaw
Отправлено: 25 Марта, 2015 - 18:35:41
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


Помог: 0 раз(а)




Проверяю этим сервисом или любым другим из поиска по запросу "проверить 301 редирект".
 
 Top
Ts.Saltan
Отправлено: 25 Марта, 2015 - 19:04:52
Post Id



Посетитель


Покинул форум
Сообщений всего: 384
Дата рег-ции: Дек. 2013  
Откуда: Belarus


Помог: 22 раз(а)




dmaw пишет:
Проверяю этим сервисом или любым другим из поиска по запросу "проверить 301 редирект".

Все современные браузеры умеют "сниффить" трафик через панель инструментов (в chromium вкладка network в веб-инспекторе). Там видно полностью всё "общение" между клиентом и сервером, в т.ч. коды, ошибки и т.д.
(Добавление)
ИМХО, я б не доверял таким сервисам, тем более, если разработка ведётся на localhost'e, они ну никак не помогут.
 
 Top
dmaw
Отправлено: 25 Марта, 2015 - 19:16:27
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


Помог: 0 раз(а)




Ts.Saltan, спасибо! Хром действительно показал, что там 301, а все сервисы показывают 200.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB