Если вам нравится SbUP Форум, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....

 

Страница 404

Автор alexburn, 08-11-2016, 13:41:36

« назад - далее »

ВикторияИ

Цитата: Dogica от 12-11-2016, 15:15:16пишите CMS если до сих пор не разобрались


Цитата: alexburn от 11-11-2016, 20:41:41Это джумловская приколюха, сайт на этом движке.




Добавлено: 12-11-2016, 16:25:04


да вроде разобрались уже


alexburnTopic starter

#21
Цитата: batan-92 от 12-11-2016, 14:56:053. Замените эту строку:
Если я это сделаю, будет выдавать что нужно - 404, это верно (чуть ранее в постах смотрите код), но не будет открываться моя страница с ошибкой

Добавлено: 12-11-2016, 20:23:53


Цитата: Dogica от 12-11-2016, 15:15:16получается что настройки сервера гда находится ваш сайт приоритетнее чем ваш .HTACCESS
Выполнение php на сервере имеет приоритет над htaccess.


batan-92

Цитата: alexburn от 12-11-2016, 20:19:34
Если я это сделаю, будет выдавать что нужно - 404, это верно (чуть ранее в постах смотрите код), но не будет открываться моя страница с ошибкой
Скорее всего это из за того, что header('Location: /404.html', TRUE, 404); передаётся после того, как были отправлены данные.
Все заголовки должны передаваться до того, как будут отправлены данные.
Если выразиться более простым языком- то перенесите все header в верхнюю часть, до того, как начнётся выводиться сам дoкумент. Если говорить на примере, то такой вот вариант не верен:
header("HTTP/1.1 404 Not Found");
include("/404.html");
header('Location: /404.html', TRUE, 404);


По тому что вы подключаете файл страницы, соответственно выводите страницу, а потом пытаетесь передать заголовок. Тут интерпритатор выдаст ошибку.
Вот так правивльно:
header("HTTP/1.1 404 Not Found");
header('Location: /404.html', TRUE, 404);
include("/404.html");


Сразу передаём заголовки, а уже потом выводим страницу.
Гадаю по ip, ставлю windows по фoтографии, насылаю вируса, порча коннекта, избавление от большого пинга, изгнание вирусов...
  •  

alexburnTopic starter

Цитата: batan-92 от 13-11-2016, 13:53:09Вот так правивльно:
Нет, так не катит, выдается стандартная страница с ошибкой, вместо моей

batan-92

Цитата: alexburn от 13-11-2016, 14:05:23
Нет, так не катит, выдается стандартная страница с ошибкой, вместо моей

А сам файл 404.html физически есть на сервере? Если нет- тогда вообще удалите строчку header('Location: /404.html', TRUE, 404);
Гадаю по ip, ставлю windows по фoтографии, насылаю вируса, порча коннекта, избавление от большого пинга, изгнание вирусов...
  •  


alexburnTopic starter

Цитата: batan-92 от 13-11-2016, 14:21:14А сам файл 404.html физически есть на сервере?
Да, присутствует на сервере, в корне сайта

batan-92

Цитата: alexburn от 13-11-2016, 14:26:25
Да, присутствует на сервере, в корне сайта

Тут если я правильно понял у вас проблема в том, что вы отправляете заголовок 404 на одной странице, а после чего отправляете на ту страницу, которая в свою очередь отдаёт свой. По этому ничего не получается. Код надо разбить на две части. Одна- перенаправляет на новую страницу, а другая- уже отправляет код ответа именно этой, новой страницы.

Дабы было проще- можно поступить так. Переименуйте файл 404.html на 404.php и соответственно перенаправляйте на .php, а не .html
Т.е. из вашего кода можно оставить одну строку, которая будет перенаправлять на страницу:
Цитироватьheader("Location: 404.php");

После откройте файл 404.php и в самом начале добавьте вот этот код:
Цитировать<?php
header("HTTP/1.1 404 Not Found");
?>

Собственно таким образом Вы сразу перенаправляете пользователя на страницу ошибки, при этом код ответа этой страницы вообще не важен, тут просто перенапрваление. После чего уже сама страница с ошибкой передаёт в заголовок код ответа 404 и сама себя выводит!  ;)
Гадаю по ip, ставлю windows по фoтографии, насылаю вируса, порча коннекта, избавление от большого пинга, изгнание вирусов...
  •  

alexburnTopic starter

Цитата: batan-92 от 13-11-2016, 14:36:34Код надо разбить на две части. Одна- перенаправляет на новую страницу, а другая- уже отправляет код ответа именно этой, новой страницы.
Вооо, вот это мне походу и нужно.
А разве смена расширения у файла может быть такой простой ? Не придется ли переписывать весь код из html под php язык ?


batan-92

Цитата: alexburn от 14-11-2016, 09:43:51
Вооо, вот это мне походу и нужно.
А разве смена расширения у файла может быть такой простой ? Не придется ли переписывать весь код из html под php язык ?

Нет. Интерпритатор php отлично различает php код от html разметки. Главное не забудьте указать, где код открывается и закрывается. <?php - указывает на начало кода, а ?> на закрытие. Дальше интерпритатор php просто будет html часть игнорировать и выводить как есть.
Гадаю по ip, ставлю windows по фoтографии, насылаю вируса, порча коннекта, избавление от большого пинга, изгнание вирусов...
  •  

alexburnTopic starter

Цитата: batan-92 от 14-11-2016, 10:35:37<?php - указывает на начало кода, а ?> на закрытие
Да это понятно :), я имел ввиду html-теги переписывать нужно ?



Если вам нравится SbUP Форум, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....