URL Rewrite Smack-Down: .htaccess против обработчика 404

URL Rewrite Smack-Down: .htaccess против обработчика 404 SEO SMM интернет маркетинг

[ad_1]

Во-первых, напомню: как доведение URL-адресов, так и перенаправление 301 можно выполнить в.htaccess файлы или в обработчике 404. Если вы не совсем понимаете, как перезапись URL-адресов и 301-е работают в целом, этот пост определенно поможет. И если вы не читали пост на прошлой неделе о раздвоении личности RewriteRule, вероятно, это полезный справочный материал для понимания сегодняшнего поста.

Робот Googlebot мечтает о вкусных ключевых словах в URL-адресах

«Усовершенствование URL-адресов» — это процесс отображения читаемых URL-адресов с большим количеством ключевых слов для конечного пользователя (и робота Googlebot) при фактическом использовании уродливых, часто параметризованных URL-адресов за кулисами для генерации контента для страницы.

Вот ты делаешь НЕТ выполните перенаправление 301.

(Неясно, что такое перенаправление, 301 или 302 и т. Д.? Здесь, в Центре знаний SEOmoz, вас ждет помощь.)

301-е выполняются, когда вы действительно переместили страницу, и вы действительно хотите, чтобы Googlebot знал, где находится новая страница.

Вы признаете роботу Googlebot, что его больше нет в старом месте.

ТОП-3 ЛУЧШИХ КРЕДИТНЫХ КАРТ ДО 1 МЛН РУБЛЕЙ ДО 365 ДНЕЙ БЕЗ ПРОЦЕНТОВ!


✅Кредитная карта №1
- Беспроцентный период: 365 дней без процентов
- Кредитный лимит до 500 000 рублей
- Доставка и облуживание карты БЕСПЛАТНО!

ПОДРОБНЕЕ >>>


✅Кредитная карта №2
- Беспроцентный период: до 365 дней без процентов
- Кредитный лимит до 1 000 000 рублей
- Доставка и облуживание карты БЕСПЛАТНО!

ПОДРОБНЕЕ >>>

✅Кредитная карта №3
- Беспроцентный период: до 200 дней без % на всё: покупки, переводы, снятие наличных.
- Кредитный  лимит до 1 000 000 рублей
- Доставка и обслуживание карты БЕСПЛАТНО!

ПОДРОБНЕЕ>>>

Вы также просите Googlebot предоставить новой странице все ресурсы ссылок, заработанные старой страницей в прошлом.

Например, вы могли перенести свой веб-сайт на новую систему управления контентом, и все страницы имеют несколько другие URL-адреса, чем те, которые были до перехода.

301-й пропускают ссылочный вес и признают, что это не то, о чем думал робот Googlebot.

Если вам нравится спусковой крючок, вы можете прийти к выводу, что RewriteRule является предпочтительным оружием как для выравнивания URL-адресов, так и для переадресации 301. Конечно, вы МОЖЕТЕ использовать RewriteRule для этих задач, и, конечно же, синтаксис регулярных выражений является мощным способом выполнения некоторых довольно сложных преобразований URL-адресов. И действительно, если вы собираетесь использовать RewriteRule, вероятно, вам следует использовать его в своем httpd.conf файл вместо этого.

В документации Apache есть отличное описание того, когда не использовать .htaccess.

Не бойся обработчика 404

Обработчики 404 могут выполнять довольно тяжелую работу

Во-первых, все, кто трепещет при мысли о создании своего собственного обработчика 404, примите валиум. Это не так уж сложно. Если у вас работает RewriteRule и вы дожили до конца, у вас не возникнет проблем с созданием собственного обработчика ошибок 404.

Это просто веб-страница, на которой отображается какое-то сообщение «не найдено», но она дает вам возможность взглянуть на запрошенную страницу, и, если вы можете «сохранить ее», вы перенаправляете пользователя на страницу, которую они ищите всего парочку строк кода.

В противном случае возвращается статус HTTP 404 вместе с тем, как вы хотите, чтобы страница выглядела, когда вы говорите им, что не можете найти то, что они искали.

Кстати, наличие собственного обработчика 404 дает вам возможность развлечь пользователя, а не просто заставить его пожалеть себя. Посмотрите этот пост в Smashing Magazine на креативных страницах 404.

Хорошее чувство юмора может вызвать любовь и преданность покупателя, который в противном случае мог бы просто разозлиться на 404.

Вот пример обработчика 404 в ASP. Важная заметка: не использовать Response.Redirect — это 302, а не 301!

Для PHP вам нужно добавить строку в ваш.htaccess указывая туда, куда вы положили обработчик 404:

  • ErrorDocument 404 /my-fabulous-404-handler.php

Затем в этом файле PHP вы можете получить URL-адрес, который не был найден, через:

  • $ request = $ _SERVER[‘REDIRECT_URL’];

Затем используйте любую логику PHP, которую вы хотите проанализировать URL-адрес и выяснить, куда отправить пользователя.
Если вы можете успешно перенаправить его, установите:

  • заголовок («HTTP / 1.1 301 перемещен навсегда»);
  • заголовок («Местоположение: http://www.acmewidgets.com/purple-gadgets.php»);

И вот здесь в PHP это становится немного опасным. Нет реального способа передать управление другой веб-странице за кулисами — не сообщив браузеру или роботу Googlebot через 301, что вы передаете его другой странице. Но вы можете использовать звонок требовать() на лету, чтобы получить код с целевой страницы. Просто не забудьте сначала установить код HTTP на 200:

  • заголовок (‘HTTP / 1.1 200 OK’);

И вы должны быть осторожны на своем сайте, чтобы использовать include_once () вместо включают() чтобы убедиться, что вы не втягиваете общий файл дважды. Другой вариант — использовать завиток чтобы захватить содержимое целевой страницы, как если бы оно было на удаленном сервере, а затем вернуть HTML-код обратно в поток, повторив то, что вы получили обратно. Но это немного опасно, если вы пытаетесь отказаться от печенья …

И, если вам действительно нужно отправить 404:

  • заголовок («HTTP / 1.0 404 не найден»);

Очень важно: будьте осторожны, чтобы убедиться, что вы возвращаете правильный HTTP-код из обработчика 404. Если вы нашли страницу с хорошим контентом, которую хотели бы показать, верните 200. Если вы нашли хорошее совпадение и хотите, чтобы робот Googlebot знал об этом имени страницы вместо того, что было запрошено, сделайте 301. Если вы действительно не знаете, У меня хорошее совпадение, убедитесь, что вы отправили 404. И не забудьте проверить фактические полученные коды ответов — я большой поклонник подключаемого модуля HttpFox Firefox.

Легкость отладки

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

На самом деле не кодируйте перенаправление, пока не убедитесь, что все остальное работает. Вместо этого просто укажите введенный URL-адрес, URL-адрес, который вы пытаетесь сфабриковать и перенаправить, и любые промежуточные строки, которые помогут вам во всем разобраться.

С участием RewriteRule, отладка в значительной степени состоит из кодирования вашего выражения регулярного выражения, установки флагов и последующего просмотра, работает ли оно.

Указывается ли URL в смешанном регистре? Косые черты … вперед? Обеспечить регресс? Мне нужно было сбежать от этого персонажа … или это не та особенность?

Вон, чертовы жуки!

Вы летите вслепую. Это работает или не работает.

Если вы боретесь с RewriteRule регулярные выражения, Rubular имеет хороший редактор / тестер регулярных выражений.

Гибкость программирования

Ваш обработчик 404 дает вам максимальную гибкость программирования

С участием RewriteRule, вам нужно выполнить всю работу в одной строке регулярного выражения.

И хотя регулярное выражение элегантно, мощно и должно всем поклоняться, иногда вам может потребоваться более сложная логика перезаписи URL, чем просто умная подстановка.

В обработчике 404 вы можете вызывать функции для таких вещей, как преобразование числовых параметров исходного URL-адреса в слова и наоборот.

Доступ к вашей базе данных

Если вы работаете с большим сайтом, управляемым базой данных, вам может потребоваться поиск элементов в базе данных для преобразования параметров в слова.

А поскольку обработчик 404 — это просто еще одна веб-страница, вы можете делать с базой данных все, что и на любой другой веб-странице.

Обработчики 404 позволяют вам взаимодействовать с вашей базой данных для декодирования URL-адреса или формирования частей вашего целевого URL-адреса.

Например, у меня был туристический веб-сайт, на котором пункты назначения, острова и отели определялись в базе данных по числовым идентификаторам. Необработанная страница, на которой отображается контент для отеля, также должна отображать страну и остров, на котором находится отель.

Необработанный URL-адрес для конкретной страницы отеля мог быть примерно таким:

/hotel.asp?dest=41&island=3&hotel=572

В то время как «красивый URL» для этого отеля мог быть примерно таким:

/ отели / Гавайи / Мауи / Гранд-Вайлеа /

Когда клиент запрашивал приведенный выше «красивый URL», мой обработчик 404 разбивал URL-адрес на разделы:

  1. поиск 2-го раздела в таблице назначений (Гавайи = 41)
  2. поиск 3-го раздела в таблице островов (Мауи = 3)
  3. поиск 4-го раздела в таблице гостиницы (Гранд Вайлеа = 572)

Затем я бы назвал функцию ASP Server.Transfer передать исполнение /hotel.asp?dest=41&island=3&hotel=572 для создания контента.

Теперь имейте в виду, что вы, вероятно, захотите сгенерировать ссылки к вашим красивым URL-адресам из идентификаторов базы данных, а не жестко их кодировать. Например, если у вас есть страница со списком всех отелей на Мауи, вы получите все идентификаторы отелей из базы данных для отелей, в которых destination = 41
и остров = 3, и хотите написать ссылки вроде / отели / Гавайи / Мауи / Гранд-Вайлеа /. Функции, которые вы пишете для этого, будут очень и очень похожи.
к тем, которые вам нужны для декодирования этих URL-адресов в обработчике 404.

И последнее, но не менее важное: вы можете отслеживать 404-е, которые вас удивляют (т. Е. Настоящие 404-е), отправив страницу либо по электронной почте, либо зарегистрировав URL-адреса 404 в таблице.
в вашей базе данных.

Представление

Google сегодня заботится о скорости загрузки страницы

Для большинства людей производительность труда снижается.htaccess не будет значительным.

Но если вы выполняете оптимизацию URL-адресов для крупного сайта или переименовали огромный список страниц на своем сайте, есть несколько вещей, о которых вы, возможно, захотите знать — особенно с учетом того, что Google теперь использует скорость загрузки страницы в качестве одного из его факторы ранжирования.

Все запросы оцениваются в.htaccess, нужны ли URL-адреса в манипуляции / перенаправлении или нет.

Сюда входят ваши файлы CSS, изображения и т. Д.

Перенося переписывание / перенаправление на обработчик 404, вы избегаете проверки кода сопоставления URL-адреса с каждым файлом, запрашиваемым с вашего веб-сервера — только URL-адреса, которые не могут быть найдены как есть, попадут в обработчик 404.

Сказав это, обратите внимание, что вы можете сопоставить шаблон в.htaccess для страниц, которыми НЕ нужно манипулировать, и используйте L флаг для преждевременной остановки обработки.htaccess для URL-адресов, которые не нуждаются в особой обработке.

Даже если вы ожидаете, что почти каждая запрашиваемая страница будет нуждаться в де-красивом URL (преобразовании в параметризованную страницу), не забывайте о файлах изображений, файлах Javascript, CSS и т. Д. Подход обработчика 404 позволит избежать наличия URL-адресов для этих компонентов страницы. проверяется на соответствие вашим шаблонам конверсии каждый раз, когда они выбираются.

Особый случай

Хорошо, может быть, этот случай не такой уж особенный — вообще-то он довольно распространен. Допустим, мы перешли к структуре новых красивых URL-адресов из старых параметризованных URL-адресов.

Мы не только должны иметь возможность перейти от красивого URL -> параметризованного URL-адреса для создания содержимого страницы для пользователя, мы также хотим перенаправить ссылочный вес из любых старых параметризованных URL-ссылок на новые красивые URL-адреса.

На актуальной параметризованной веб-странице (например, hotel.asp в приведенном выше примере) мы хотим сделать 301 редирект на красивый URL. Мы возьмем каждый из числовых параметров, найдем пункт назначения, остров и название отеля и создадим наш красивый URL-адрес и 301 для этого. Там ссылочный сок все сохранен …

Но мы должны быть осторожны, чтобы не попасть в бесконечный цикл, конвертируя туда-сюда, туда-сюда:

Когда это происходит, Firefox предлагает сообщение о том, что вы сделали что-то настолько глупое, что даже не пытается получить страницу. Однако они говорят это так вежливо: «Firefox обнаружил, что сервер перенаправляет запрос на [URL] таким образом, который никогда не будет завершен «.

Кстати, вполне возможно, что та же проблема возникнет через RewriteRule высказывания — знаю по личному опыту 🙁

На самом деле решить эту проблему не так уж и сложно. В ASP, когда обработчик 404 передает управление странице hotel.asp, строка запроса теперь начинается с «404; http«. Итак, в hotel.asp мы видим, начинается ли строка запроса с 404, и если да, мы просто продолжаем отображать страницу. Если она не начинается с 404; http, тогда мы 301 переходим к красивому URL.

Другие ссылки

Информация о настройке обработчика 404 в Apache:

  • http://www.plinko.net/404/custom.asp
  • http://www.webreference.com/new/011004.html
  • http://www.phpriot.com/articles/search-engine-urls/4

Документация Apache по RewriteRule:

  • http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#RewriteRule

Пользовательские страницы ошибок ASP.net:

  • http://aspnetresources.com/articles/CustomErrorPages.aspx

Отличная статья о создании страниц 404 для сайтов WordPress, которые удерживают клиентов на вашем сайте (спасибо

Archshrk!):

  • http://yoast.com/404-error-pages-wordpress/

[ad_2]

Оцените статью
( Пока оценок нет )
Добавить комментарий

Top.Mail.Ru