Как сделать страницу 404 htaccess
Сегодня я расскажу о нескольких полезных вещах, которые можно сделать с файлом htaccess. Эти вещи, которые вы сможете использовать на своих веб-сайтах, сделают работу с сайтами более удобной.
1. Перенаправление посетителей при обновлении сайта.
Замените 123.123.123.123 на Ваш ip-адрес, а также замените page.html на ту страницу, которую будут видеть пользователи, зашедшие на сайт.
2. Определенная страница с ошибкой 404.
Когда пользователи обращаются к странице на Вашем сайте, которой не существует, то им показывается ошибка 404. Если вы хотите сделать ее определенной страницей, то в файле htaccess следует прописать следующий код:
Перенаправлять посетителей в таком случае удобно на главную страницу сайта.
3. Редирект на перемещенные или переименованные страницы.
Если вы переименовали или переместили некоторые страницы на сайте и хотите, чтобы посетители увидели уже новые страницы, даже если они обращаются по старому адресу, следует в файл htaccess прописать следующий код:
Также вы можете использовать такой редирект для того, чтобы страница не потерялась для поисковиков.
4. Запрет на просмотр директории.
Если у Вас в папке на сайте нет файла index, то любой пользователь может посмотреть, какие файлы в ней лежат.
Чтобы избежать таких вещей, следует прописать такой код:
На некоторых хостингах такая функция прописана по-умолчанию, в таком случае Вам не стоит беспокоиться.
5. Создание красивых URL.
Несомненно, что из этих двух ссылок первая выглядит намного привлекательнее.
С помощью файла htaccess и апач модуля, который называется mod_rewrite, вы сможете переделать свои ссылки на более красивые и короткие.
Вот некоторые примеры с кодом:
P.P.S. Чтобы с нуля создать такой файл Вам следует открыть, например, блокнот, вписать в него строчку
нажать «Сохранить как. «, в имя файла ввести .htaccess и выбрать «все файлы».
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.frontdeskapp.com
Перевел: Сергей Патин
Урок создан: 22 Июня 2009
Просмотров: 105664
Правила перепечатки
5 последних уроков рубрики «Для сайта»
Эффекты блочного раскрытия
Сегодня мы хотели бы поделиться несколькими идеями касающегося эффекта блочного раскрытия, которую вы можете использовать для своих проектов.
20 бесплатных тем для WordPress в стиле Material Design
Material Design — это набирающий обороты тренд от Google. В данной подборке собраны бесплатные темы для WordPress, выполненные в этом популярном стиле.
20 сайтов с креативным MouseOver эффектом
Эффекты на то и существуют чтобы впечатлять наших посетителей. В этой подборке собрано несколько десятков ресурсов, чьи создатели очень постарались впечатлить своих посетителей.
45+ бесплатных материалов для веб дизайнеров за август 2016
Под конец месяца предлагаем ознакомиться с набором бесплатных материалов для веб дизайнеров за прошедший месяц.
Ошибка 404 на htaccess
Редирект 404 на htaccess
Предположим, что у нас на сайте есть ненужные ссылки с GET параметрами, например ваш_сайт/?more=1 и мы хотим запретить их показывать отдав ошибку 404 в ответ.
Забрасываем этот код в файл htaccess в корне вашего сайта WordPress и смотрим результат:
Вот так вот, браузер получает ошибку 404 через redirect. Аналогичное сообщение получит и поисковый бот и через время выбросит этот url из своего кеша.
Если вам нужно заблокировать какую нибудь страницу WordPRess, например ваш_сайт/privet-mir/, можно написать код вот такого плана:
Результат работы предсказуемый:
Я тестировал этот результат только на CMS WordPress, если у вас не получается использовать 404 редирект htaccess на другой системе управления не стоить расстраиваться, по всей видимости код для них может быть похожий. Как альтернатива попробуйте вот такой код:
Он не работает на вордпресс, но работает на сайтах без системы управления контентом.
Ошибка 404 htaccess
Если вы внимательно тестировали результат работы, то наверное заметили вот эту дурацкую ошибку:
Как указать страницу ошибки 404 на htaccess
Для того, чтоб указать какая страница отвечает за обработку 404 ошибки мы можем написать вот такой код перед вызовом нашей ошибки:
Полный код будет выглядеть приблизительно вот так тогда:
И тут как говорится за что боролись, на то и напоролись:
Перед ошибкой 404 мы получаем ошибку 302 и это как говорят СЕО шники очень плохо. В общем если ваш заказчик не СЕО специалист этот вариант прокатит, в альтернативном варианте надо использовать PHP для генерации ответа. Об этом я писал вот здесь: 404 c php
Если мне удастся решить проблему с htaccess 404 redirect 302 я обязательно напишу вам об этом в этой же теме. На данный момент решение проблемы не найдено. Решение есть, описал его ниже.
Аналогично можно было не придумывать каруселей и сделать 404 редирект на htaccess через 301 редирект, разницы по сути никакой, только проще и быстрее:
По сути задача сделать саму ошибку 404 превратилась в банальное перенаправление на 404. Будем искать варианты.
Решение проблемы 302 перенаправления при ответе 404
В корне сайта создаем файл «error.html» и туда забрасываем хтмл код, который генерирует ваш сервер WordPress. Вот результаты работы:
и вот же правильная страница ошибки без редиректа 302:
Теоретически на этом все. Теперь вы знаете как делается ошибка 404 на htaccess.
Если вы имеете другие решения htaccess 404 redirect или перенаправление на 404 без редиректа 301 и 302 буду рад вас выслушать. Обращайтесь, пишите комментарии, жмите лайк.
Но почему то тольок для главной страницы. На другизх страницах, после такой вставки почему-то портится дизайн сайта, т.е изображение и другие кажись стили слетают. Почему так? На главной странице вроде всё ок.
Помогите справиться с проблемой. Есть сайт, который сейчас работает на wp, до этого работал или на джумле или на opencart. Остались хвосты в виде url сайт/?route=product/category&path=44
но это не помогает, все равно 200 ОК отдает.
Добрый день.
Если все правильно, то этот код должен работать, только его нужно добавлять в самом верху и вы забыли о ErrorDocument 404 /error.html надо еще создать файл с ошибкой в корне, error.html хотя бы для теста.
Если не будет работать то этот вариант точно вам поможет
RewriteCond %
RewriteRule ^(.*)$ http://%
будет редирект вместо 404
главное писать код в самом верху файла хтацес.
Если нет то есть еще пхп ответ 404 вот тут о нем писал https://help-wp.ru/seo-wordpress-kak-otpravit-oshibku-404-s-php-chasti/
писал вот такой код полностью.
и не хочет гад.
Не сочтите за наглость, приведу конкретный пример.
вот этой странице нужно прописать 404.
да код вроде правильный, но в самом верху не хватет строчки ErrorDocument 404 /error.html ну и собственно сам файл в корне создайте.
Если не помогает можете открыть header.php вашей темы и забросить в самый верх вот такое:
# END WordPress
# END WordPress
Но при переходе на страницу site.ru/?page=(-url-) почему то переход идет на мою главную страницу. Подскажите может чтото сделать или кто-то знает. Спасибо.
Добрый день.
Вы видимо эту часть упустили ErrorDocument 404 /error.html
+ у вашем случаи не важно будет там 301 или не будет, можно смело через 301 редирект то же самое делать, на страницу вашсайт/404 или любую другую, хотя должно и через ошибку 404 получится
Не работает)
Поставил 301
Redirect 301 /?page=http://(-url-) (-url-)
Также все равно на главную.
Добрый день.
Я никогда такого не делал и сейчас нет времени тестировать, но мне кажется вот такой вариант в htaccess должен работать.
Предположим что у вас за 404 отвечает страница вашсайт/404/, вы хотите чтоб она была без http, код ниже должен работать но я не уверен, может и не работать:
RewriteEngine on
RewriteCond %
RewriteCond %
RewriteRule ^(.*)$ http://%
ну или в этом направлении нужно двигаться. Там единственный момент что ВП может вмешаться и все равно менять на https и тогда будет зацикливание
SOS
Не могу победить
php_flag register_globals on
RewriteEngine on
RewriteRule ^([-,0-9,a-z]+)$ /index.php?area=1&p=static&page=$1
Стандартное сообщение с перенаправлением на главную
Помогите, пожалуйста, задействовать при ошибке 404 перенаправление на new404 и убрать стандартное сообщение.
Немного не понял что вам нужно сделать. Пробовали код вставлять из этой статьи, он 100% рабочий под ВП я проверял.
index.php?area=1&p=static&page=new404
Поставил, но на него реагируют только ссылки с любым или несуществующем расширением.
У меня страницы без расширения вызываются.
У меня Koobi.
Мне нужно перенаправление на (-url-)
ErrorDocument 404 /index.php?area=1&p=static&page=new404
остается только скомбинировать ваш хтаццес и этот ответ
У меня страницы tpl.
При вставке ПХП получается
То есть, и «/?more=1», и «/?more=2», и «/?more=3» и так далее.
Добрый день.
Все остается как есть, только меняем первую строчку с такого варианта
Будьте добры, как сделать, чтобы вместо главной страницы при любом ошибочном урл был код 404. Я понимаю, что в Hhtaccess надо прописывать конкретную страницу? А что делать в моем случае?
Не знаю с какого источника вы нашли этот пример, но он реально работает. Получается чистая ошибка 404 на htaccess без редиректов и ошибок 302. Большое вам спасибо.
Только privet-mir замените на свое bla.
Если не ВП то используйте 301 редирект
Вот тут https://help-wp.ru/seo-wordpress-kak-otpravit-oshibku-404-s-php-chasti/ описанно как сделаь ответ 404 на пхп. Думаю в вашей ситуации это единственно правильное решение. Нужно только найти кто принимает на себя неправильные страницы
Не плохое решение, автору респект. Сам хотел придумать и заставить WordPress правильно отдавать 404 ошибки на htaccess но чет не получалось. Собственно мудрил как и вы но не придумал что делать с 302 ошибой. По сути я вместо 404 получал 302 и это очень плохо, вам подтвердит любой нормальный сеошник. Это все равно что сделать запрет на директорию, она как бы есть но поисковики ругаются, хотя страницу можно закрыть и так :))))))
Улучшаем страницу 404-ой ошибки
Если пользователь попадает на стандартную страницу ошибки 404, велика вероятность того, что он покинет веб-сайт и вряд ли вернется. Кастомная страница 404, полезная и привлекательная, способствует дальнейшему пребываниваю на вашем веб-сайте.
Наша цель: улучшить страницу 404!
Что не так с страницей 404-ой ошибки по умолчанию?
Ответ прост: все. Страница 404, на которой лишь написано «Страница не найдена», не будет полезной для посетителя; даже ссылка «Вернуться на главную» не поможет.
Отсутствие достойной 404-ой страницы ухудшает впечатление пользователя. Посетители, которые ищут определенную страницу на вашем сайте, но попали на битую ссылку, будут вынуждены вернуться на главную страницу и начать поиск заново. Если они не найдут, что ищут, то тут же покинут веб-сайт. В идеале пользователь никогда не столкнется с подобными ошибками, но 404-ая страница позволяет извиниться перед пользователем и помочь ему найти то, что он ищет. Довольный посетитель вероятнее всего вернется на ваш веб-сайт.
Еще хуже, когда 404-ая страница отсутствует вовсе. У посетителя не будет представления о том, что происходит. Отсутствие такой страницы делает сайт непрофессиональным и заставляет пользователей покинуть его.
Пространство для улучшения
Самое важное сделать страницу 404-ой ошибки простой и понятной пользователю. Напишите, что страница, которую ищет посетитель, не существует. Объясните, почему именно она не существует.
Извини, друг. Страница, которую вы запросили, не находится в нашей базе данных. Скорее всего вы попали на битую ссылку или опечатались при вводе URL. – A List Apart 404-ая страница
Совет 1: Придерживайтесь дизайна
Очень важно, чтобы дизайн 404-ой страницы не отличался от остального веб-сайта. Это включает логотип, навигацию, цветовую схему и т.д.
Совет 2: Максимальная польза
Совет 3: Будьте дружелюбными и понятными
Не думайте, что все знают, что такое 404-ая ошибка. Вас нужно объяснить, в чем проблема, в дружелюбной манере. Лучше сказать так: «Упс! Мы не можем найти страницу, которую вы ищете.», чем так: «404-ая ошибка. Страница не найдена».
Совет 4: Минималистичный дизайн тоже сработает
Если вы владете крупным веб-сайтом, например, как Google, с множеством страниц разного содержания, то страница 404 с картой сайта, популярными страницами или поисковой формой не поможет пользователю.
Совет 5: Будьте проще
404-ая страница может быть простой и даже смешной. Если ваша страница является таковой, то она бесспорно задержит посетителей на вашем сайте. Возможно даже, что они будут скидывать эту страницу своим друзьям. Именно это и произошло с 404-ой страницей GitHub:
На сайте nosh.com вообще размещено видео:
Результаты поиска
Ваша страница 404-ой ошибки может быть эффективной и отлично смотреться, но очевидно, что она не должна появляться в результатах поиска. Это можно осуществить двумя способами:
Используем страницу 404-ой ошибки
Заключение
Теперь мы знаем, что вместо скучных и бесполезных страниц 404-ой ошибки, нужно потратить время на создание собственной информативной страницы, увидев которую, посетителям не захочется покидать веб-сайт.
PS Все замечания по поводу перевода, орфографии и т.п. с удовольствием приму в личку. Спасибо!
Делаем собственную страницу ошибки 404
Здравствуйте, уважаемый посетитель!
Сегодня рассмотрим практические действия по созданию собственной, так называемой, пользовательской страницы 404, которая должна отображаться в случаях перехода пользователя на несуществующий ресурс сайта.
Рекомендации по созданию страницы с ошибкой 404 Not found
Существуют различные варианты пользовательских страниц, предназначенных для отображения ошибки 404 (Not found). На то они и пользовательские, чтобы отражать всю креативность их авторов. О множестве вариантов можно судить хотя бы из примеров этой тематике из картинок Яндекса.
Но в любом случае, для того, чтобы правильно создать такую страницу, следует при ее оформлении принимать во внимание определенные правила и рекомендации, такие как:
Таким образом при формировании своей собственной страницы 404 далее постараемся руководствоваться этими рекомендациями.
Создаем каркас страницы и оформляем основное ее содержание
Страница 404 и ее подобные, предназначенные для вывода информации об ошибках, в отличие от обычных динамических страниц, не формируются посредством шаблона, а создаются непосредственно в отдельных файлах.
Поэтому в первую очередь создадим в корне сайта файл с именем, соответствующему данному случаю, например «page_404.php». Как создать новый файл ранее показывалось здесь. После чего можно перейти и к написанию кода страницы, определив ее структуру и содержание.
Как выше было сказано, примеров использования страниц 404 множество. Мы же за основу возьмем вариант, при котором в ее структуру будут включены некоторые общие блоки сайта, такие как шапка и футер.
А в области основного содержания вместо контента будет размещено сообщение об ошибке, ее краткое описание со ссылкой на Главную страницу и форма поиска по сайту с возможностью нахождения нужного ресурса по заданным ключевому слову, фразе или URL веб-страницы.
В результате дизайн такой страницы будет полностью поддерживать единый стиль сайта, но существенно отличаться от обычных страниц. При этом пользователю будет предоставлена возможность в один клик использовать имеющиеся разделы через меню, расположенное в шапке и футере сайта или использовать поиск для нахождения нужного контента.
Для реализации вышесказанного ниже показан код, который получен путем исключения из шаблона главной страницы лишних, не используемых в этом случае, блоков.
Рис.1 Файл «page_404.php» с кодом страницы 404
src = «/images/page_404/page_404.png» alt = «Страница 404» >
Где искать и как редактировать
.htaccess — общепринятое и самое популярное название, но не обязательное (оно задается в файле httpd.conf). Несмотря на непривычное название, создавать и редактировать файл можно в любом текстовом редакторе.
Некоторые CMS дают возможность редактировать файл через административную панель. В Битриксе его легко можно найти в разделе Контент — Файлы и папки:
Синтаксис файла простой: каждая директива (команда) начинается с новой строки, после знака # можно добавлять комментарии, которые не будут учитываться сервером. Изменения на сайте вступают в силу сразу, перезагрузка сервера не требуется.
Правила задаются в том числе при помощи регулярных выражений. Для того, чтобы их прочитать, нужно понимать значение спецсимволов и переменных. Расшифруем самые часто используемые.
Основные спецсимволы:
Основные переменные:
Настраиваем редиректы для SEO
При настройке 301 редиректов помните о двух правилах:
1. Настраиваем постраничные 301 редиректы
Это потребуется в следующих случаях:
Просто удалить страницу — плохая идея, лучше не отдавать роботу ошибку 404, а перенаправить его на другой URL. В этом случае есть шанс не потерять позиции сайта в выдаче и целевой трафик. Настроить 301 редирект с одной страницы на другую можно при помощи директивы простого перенаправления:
2. Избавляемся от дублей
Каждая страница сайта должна быть доступна только по одному адресу. Для этого должны быть настроены:
Переадресация на слеш или наоборот
Настроить ли переадресацию на страницы со слешем или без, в каждом случае нужно решать индивидуально. Если у сайта уже накоплена история в поиске, анализируйте, каких страниц в индексе больше. Для новых сайтов обычно настраивают редирект на слеш. Проверить, не настроена ли переадресация по умолчанию, просто: удалите/добавьте слеш в конце URL. Если страница перезагрузится с новым адресом — мы имеем дубли, требуется настройка. Если URL подменяется — все в порядке. Проверять лучше несколько уровней вложенности.
Код 301 редиректа на слеш:
Код 301 редиректа на страницы без слеша:
3. Настраиваем главное зеркало
Редирект на HTTPS
Определять, с «www» или без будет главное зеркало, можно несколькими способами:
После того как выбор сделан, воспользуйтесь одним из двух вариантов кода.
Редирект с www на без www
Редирект с без www на www
4. Перенаправляем с одного домена на другой
Самая очевидная причина настройки этого редиректа — переадресовать роботов и пользователей на другой адрес при переезде сайта на новый домен. Также им пользуются оптимизаторы для манипуляций ссылочной массой, но дроп-домены и PBN — серые технологии продвижения, которые в рамках этого материала мы затрагивать не будем.
Воспользуйтесь одним из вариантов кода:
Не забудьте поменять в коде «mysite1» и «mysite2» на старый и новый домен соответственно.
Модуль SEO в системе Promopult: для тех, кто не хочет тонуть в рутине. Все инструменты для улучшения качества сайта и поискового продвижения, автоматизация процессов, чек-листы, подробные отчеты.
Обеспечиваем безопасность сайта
5. Запрещаем загрузку картинок с вашего сайта
Существуют технологии, при которых сторонние сайты используют контент, в том числе изображения, загружая его прямо с вашего хостинга путем хотлинков (прямых ссылок на файлы). Это не только обидно и нарушает авторские права, но и создает ненужную дополнительную нагрузку на ваш сервер.
Осадите воришек при помощи этого кода:
6. Запрещаем доступ
Для нежелательных User Agents (ботов)
Список юзер-агентов можно дополнять, сокращать или создать свой. Перечень хороших и плохих ботов можно посмотреть здесь.
Частный случай такого запрета — запрет для поисковых роботов. Если вас почему-то не устраивает правило в robots.txt, можно запретить доступ, например, роботу Google при помощи таких директив:
Для всех, кроме указанных IP
Не забываем заменить «https://mysite.com» на адрес вашего сайта и вписать IP-адреса вместо IP1, IP2 и т.д.
Для определенных IP-адресов
Для подсети
Вписываем маску сети в строку после «deny from».
Спамные IP-адреса можно вычислить в логах сервера или с помощью сервисов статистики. В административной панели WordPress отображаются IP-адреса комментаторов:
К определенному файлу
Вписываем название файла вместо «myfile.html» в примере. Пользователю будет показана ошибка 403 — «доступ запрещен».
Для сайтов на WordPress важно ограничить доступ к файлу wp-config.php, т.к. в нем содержится информация о базе данных:
Для пользователей, пришедших с определенного сайта
Вы можете заблокировать посетителей с нежелательных ресурсов (например, со взрослым или шокирующим контентом).
7. Защищаем доступ к определенному файлу или папке
Защита паролем файла
Защита паролем папки
8. Запрещаем выполнение вредоносных скриптов
Следующая группа директив защищает сайт от так называемых «скриптовых инъекций» — инструмента хакерских атак:
Все попытки причинить вред вашему ресурсу будут перенаправлены на страницу ошибки 403 «доступ запрещен».
9. Защищаем сайт от DOS-атак
Один из способов защиты — ограничить максимально допустимый размер запроса (ограничение отсутствует по умолчанию).
В примере указан размер 10 Мбайт. Если вы хотите запретить загрузку файлов, пропишите число меньше 1 Мбайт (1048576 байт).
Также можно изучить возможности директив LimitRequestFields, LimitRequestFieldSize и LimitRequestLine в официальной документации.
Настраиваем отображение сайта
10. Заменяем индексный файл
Индексный файл — тот, что открывается по умолчанию при обращении к определенному каталогу. Обычно они называются: index.html, index.htm, index.php, index.phtml, index.shtml, default.htm, default.html.
Вот как это выглядит в структуре каталога:
Вместо «hello.html» вписывайте адрес желаемого файла.
Можно задать последовательность файлов, которые будут открываться в указанном порядке, если один из них будет недоступен:
11. Добавляем или убираем html в конце URL
Сохранять или убирать расширение файлов в URL — дело вкуса каждого оптимизатора. Достоверных исследований влияния расширений в адресах на ранжирование ресурса нет, но каждый вебмастер имеет свое мнение по этому поводу.
Этими же директивами можно добавить/убрать расширение php.
12. Настраиваем кодировку
Чтобы избежать ошибок в отображении ресурса браузером, нужно сообщить ему, в какой кодировке создан сайт. Самые популярные:
Чаще всего используют UTF-8 и Windows-1251.
Пример директивы, которая задает для файла кодировку UTF-8:
А такая команда означает, что все загружаемые на сервер файлы будут преобразованы в Windows-1251:
В примерах приведены разные кодировки, но в рамках одного сайта кодировки в этих директивах должны совпадать.
13. Создаем кастомные страницы ошибок
Перед тем, как прописывать директивы, создайте в корне сайта папку error и разместите туда соответствующие файлы для страниц ошибок.
Зачем это нужно? Например, чтобы не потерять пользователя на странице 404, а дать ему возможность перейти в другие разделы сайта:
Оптимизируем работу сайта
14. Сжимаем компоненты сайта при помощи mod_gzip или mod_deflate
Синтаксис модуля Gzip более гибкий и он умеет работать с масками:
В mod_deflate вы перечисляете типы файлов, которые нужно сжать:
15. Усиливаем кэширование
Этот комплекс команд поможет быстрой загрузке сайта для тех посетителей, которые уже на нем были. Браузер не будет заново скачивать картинки и скрипты с сервера, а использует данные из кэша.
В примере срок жизни кэша ограничен одной неделей («1 week»), вы можете указать свой срок в месяцах (month), годах (year), часах (hours) и т.д.
Другой вариант кода:
Для кэширования доступны следующие типы файлов:
Еще несколько возможностей
16. Управляем настройками php
Этот комплекс настроек выполняют программисты, если нет доступа к файлу php.ini. Остановимся на выражениях php_value, которые отвечают за объем загружаемых на сайт данных и время обработки скриптов, т.к. это напрямую влияет на производительность.
В строке «upload_max_filesize» указываете максимальный размер загружаемых файлов в мегабайтах, «post_max_size» означает максимальный объем постинга, «max_execution_time» указывает время в секундах на обработку скриптов.
17. Боремся со спам-комментариями на WordPress
Вместо «mysite.com» впишите адрес вашего сайта.
18. Устанавливаем e-mail для администратора сервера
19. Предупреждаем о недоступности сайта
IP-адрес в примере (12\.345\.678\.90) замените на свой, в последней строке укажите адрес страницы вашего ресурса с информацией о характере и сроках завершения работ.