Код ответа 302 с уникальной страницы 404
Autor: Александр Т.
Visitado 3326,
Seguidores 1,
Compartilhado 0
Мне захотелось запилить уникальную страничку 404, страницу создал, но столкнулся с проблемой: сервер при загрузке несуществующей страницы выдает код ответа 302 хотя (Я правильно понимаю?) должен выдавать код 404. Страница нужная загружается, но насколько я понимаю гораздо важнее чтобы отдавался верный ответ от сервера.
В .htaccess писал следующее:
ErrorDocument 404 http://aqua-ek.ru/404.html (писал в конце, но разницы же нет вроде?)
Пробовал другие конструкции из интернета, выдает 500 (Internal Server Error)
Вот такого вида например:
header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
include_once("404.php");
exit;
Заранее спасибо
Publicado em
Hi Aleksandr,
it seems like an hosting issue, that doesn't depend directly on the software.
To solve this problem, you should get in touch with your hosting and explain the situation like you did here, they will be able to help you.
many thanks!
***** Google Translation:
Привет Александр,
похоже на хостинг вопрос, который не зависит напрямую от программного обеспечения.
Чтобы решить эту проблему, вы должны войти в контакт с вашим хостинг и объяснить ситуацию, как вы сделали здесь, то они будут в состоянии помочь вам.
большое спасибо!
Autor
На хостинг мне не хочется обращаться, там мудаки работают и посылают сюда. Новым пользователям, не советую брать хостинг 1gb.ru. Я думаю это проблема в .htaccess, может еще будут советы? И да, почему программа сама не формирует этот файл, а мне вручную над ним работать приходится? Кстати robots.txt тоже приходится самому формировать.
Покажите полностью содержимое файла .htaccess
ErrorDocument 404 /404.htm
Правильно будет написать относительную ссылку, а не абсолютную, тогда ответ должен быть 404
вы страницу 404 создали на сайте физически? название у неё должно быть 404.html, а не 404.htm
htm это опечатка. Должно быть так:
ErrorDocument 404 /404.html
Зачем такие слодности. В панели управления хостингом указать ошибку 404 с ссылкой на главную страницу (как вариант) или на страницу, которая будет отображать ошибку (необходимую информацию).
Autor
Относительную ссылку я тоже пробовал делать, не помогает, все так же.
Содержимое .htacess вот: (Я удалил строку, ответственную за перенаправление на 404, на всякий случай, до выяснения причин)
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>
<ifModule mod_headers.c>
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>
</ifModule>
<IfModule mod_setenvif.c>
BrowserMatch "MSIE" force-no-vary
BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^aqua-ek.ru[nc]
RewriteRule ^(.*)$ http://www.aqua-ek.ru/$1 [r=301,nc]
Autor
Страница вот: https://aqua-ek.ru/404.html
По поводу .htm вместо .html - Где Вы увидели ошибку? я вроде проверил, все верно
Autor
А что, можно? Я не нашел этой функции. У них вообще какой то кривой хостинг, куча свистелок и перделок кнопочек, не понятно, что это, зачем, я когда смотрю на это обилие функций у меня моск плывет... У вас тоже 1gb? Подскажите где эта функция, со скрином? буду благодарен!
я не пользуюсь услугами таких провайдеров.
Apache. Страницы ошибок задаются через файл .htaccess в корне сайта.
В корневой папке сайта нужно создать файл ".htaccess" (имя файла без кавычек маленькими буквами, начинается с точки), если файл уже существует. То надо добавить или исправить следующую строку:
ErrorDocument <код ошибки> <file>
Например: ErrorDocument 404 /404.html
Autor
Так, я короче разобрался походу... Думаю, дело в том что я когда проверял сервисами, вводил протокол не https а http (у меня настроено перенаправление) Когда я вводил http сервер и давал ответ 302 - он просто сначала перенаправлял на https а уже потом выдавал 404 ответ... Но все таки, не будет ли от этого проблем в дальнейшем? А то я напуган тут всякими рассказами про индексацию несуществующих страниц и так далее. Ответ сервера 302 при перенаправлении на https - это нормальное явление? Ну параноик я, бывает. Мне очень хочется чтобы все было идеально.
Спасибо всем за помощь!
при обходе сайта роботами, не существующие ссылики помечаются, а в последствии удаляются. некоторое время будут падать показатели, а потом все восстанавливается. при обходе страниц учитывается не их количество, а их полнота для понимания :)
Autor
Спасибо, про это я в курсе=)
Меня интересует несколько другое - не попадут ли несуществующие страницы (мало ли) в индекс если код ответа 302 будет? Ну или не страницы в индекс а какой нибудь другой косяк. Ибо забавно, что даже в Search Console сайты с www и без него - разные сайты. И шифрованый/нешифрованый протокол - тоже разные сайты в глазах поисковиков. Вот и переживаю
обход будет всех страниц. исключение описываются в robots.txt, тогда робот будет их игнорировать (исключать).