PHP.SU

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


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

> Без описания
DlTA
Отправлено: 22 Апреля, 2019 - 17:10:47
Post Id



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


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


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




у меня сайт при некоторых запросах выдает ошибку 302,
где он это делает не знаю
перерыл все header (если в header в третьем параметре не указана код то идет по 302)
но не помогло

возможно где то в .htaccess есть пересылка, то я ее не вижу
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteEngine On
  2. RewriteCond %{REQUEST_FILENAME} !-f
  3. RewriteCond %{REQUEST_FILENAME} !-d
  4. RewriteRule ^(.+)? ./index.php [L]


как проверить где у меня выдается 302?
 
 Top
andrewkard
Отправлено: 22 Апреля, 2019 - 17:53:35
Post Id


Участник


Покинул форум
Сообщений всего: 1329
Дата рег-ции: Нояб. 2014  


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




DlTA пишет:
как проверить где у меня выдается 302?

может парсер написать и пробежаться по страницам?
(Добавление)
Посмотреть логи, для nginx тут
/var/log/nginx/access.log
 
 Top
DlTA
Отправлено: 22 Апреля, 2019 - 17:59:09
Post Id



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


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


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




нашел,
на странице выдается
PHP:
скопировать код в буфер обмена
  1.  
  2. $headerData []= 'HTTP/1.0 404 Not Found';
  3. $headerData []= 'Location: /';
  4. ...
  5. header($headerData[0]);
  6. ..
  7.  


так вот заголовок HTTP/1.0 404 Not Found
не обрабатывается, и мы получаем 302 статус
 
 Top
Мелкий Супермодератор
Отправлено: 22 Апреля, 2019 - 18:05:01
Post Id



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


Просматривает форум
Сообщений всего: 11840
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Если вы пытаетесь выдать И 404 И location:

Цитата:
The second special case is the "Location:" header. Not only does it send this header back to the browser, but it also returns a REDIRECT (302) status code to the browser unless the 201 or a 3xx status code has already been set.

https://www.php.net/manual/en/fu...ction.header.php

Ну и в принципе для 404 не предполагается Location.


-----
PostgreSQL DBA
 
 Top
DlTA
Отправлено: 22 Апреля, 2019 - 18:11:52
Post Id



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


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


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




а что делать если нечего выдавать? поэтому делаешь статус 404 с переходом на главную

 
 Top
andrewkard
Отправлено: 22 Апреля, 2019 - 18:16:45
Post Id


Участник


Покинул форум
Сообщений всего: 1329
Дата рег-ции: Нояб. 2014  


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




DlTA пишет:
а что делать если нечего выдавать?

по идее должна быть страница 404 не найдено и на нее
 
 Top
DlTA
Отправлено: 22 Апреля, 2019 - 18:18:10
Post Id



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


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


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




опять косяк
header('Location: /', true, 404)
не перезагружается выдает ошибку и все.
 
 Top
andrewkard
Отправлено: 22 Апреля, 2019 - 18:18:31
Post Id


Участник


Покинул форум
Сообщений всего: 1329
Дата рег-ции: Нояб. 2014  


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




А
$headerData[0] == 'HTTP/1.0 404 Not Found'
?
 
 Top
DlTA
Отправлено: 22 Апреля, 2019 - 18:22:52
Post Id



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


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


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




andrewkard пишет:
А
$headerData[0] == 'HTTP/1.0 404 Not Found'
?

да
 
 Top
andrewkard
Отправлено: 22 Апреля, 2019 - 18:32:34
Post Id


Участник


Покинул форум
Сообщений всего: 1329
Дата рег-ции: Нояб. 2014  


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




PHP:
скопировать код в буфер обмена
  1.  
  2. header("HTTP/1.0 404 Not Found");
  3. echo "<script>window.location = '/';</script>";exit();
  4.  

Улыбка))
 
 Top
Мелкий Супермодератор
Отправлено: 22 Апреля, 2019 - 18:34:49
Post Id



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


Просматривает форум
Сообщений всего: 11840
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




DlTA пишет:
а что делать если нечего выдавать?

Ответить, что такого нет.

DlTA пишет:
с переходом на главную

Нет. Это дурацкое поведение. Зачем мне главная?

DlTA пишет:
не перезагружается выдает ошибку и все.

см
Мелкий пишет:
Ну и в принципе для 404 не предполагается Location.

Для 301/302 в rfc написано: см. заголовок Location
Для 404 это один из множества заголовков ответа. Ничего с ним делать не предписано, зато предписано что клиент не должен реагировать на дополнительные заголовки, которые клиент не считает неободимыми.


-----
PostgreSQL DBA
 
 Top
DlTA
Отправлено: 22 Апреля, 2019 - 18:49:38
Post Id



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


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


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




оно иначе не работает.
для 404 нужен контент(
 
 Top
Мелкий Супермодератор
Отправлено: 22 Апреля, 2019 - 21:19:48
Post Id



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


Просматривает форум
Сообщений всего: 11840
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




И какая проблема отдать статичную страницу 404? Вам всё равно нужна статичная страница для 5хх ошибок. Сделайте в этом же стиле для 404.


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB