Главная

Главная


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

Все было хорошо до тех пор, пока я случайно не увидел, что происходит на рабочем сервере. В ответ на ошибочный url браузер отобразил стандартную страницу IIS 7.0 "Page not found". IIS 7.0 page not found

Полез разбираться. На моем компьютере с Windows Vista и IIS 7.0 все работает отлично - возвращается именно моя страница, прием код возврата - 404. А вот на рабочем сервере с Windows Server 2008 и IIS 7.0 возвращается стандартная страница IIS.

В результате получается, что сначала ASP.NET приложение корректно обрабатывает 404 ошибку и возвращает ответ браузеру. После чего этот ответ перехватывает IIS, видит 404 код и заменяет его на на свое стандартное сообщение. Я не скажу точно, было ли это изначально в Windows Server 2008 или, скажем, появилось вместе с Service Pack 2 - но налицо вот такой неприятный сюрприз. Проявляется он только в IIS Integrated mode, в Classic mode все работает как и раньше. Кстати, это заставляет задуматься о том, что для качественного тестирования желательно иметь среду, аналогичную production server, а не Windows 2000 с IIS 6.0 :)

[читать дальше]

Visual Search Suggestions - одна из новых возможностей поиска в IE 8.0. Она позволит пользователям искать что-нибудь на вашем сайте, не переходя на его страницы. А если вы добавите к провайдеру favicon, ваш бренд (скорее брендик 16 на 16) всегда будет вместе с пользователем. Мини игры на Play2Game.ru А главное, она позволит разбавить сухой текст результатов поиска симпатичными картинками, например вот так:

А еще, вы сможете рассказать о своем провайдере, выложив его в галерею расширений IE 8.0. Или выиграть плазменный телевизор, поучавствовав в конкурсе дополнений к IE 8.0, который проводится в рамках конференции ReMIX09. конкурс расширений для IE 8.0

Между прочим, сейчас там зарегистрировано всего 3 визуальных провайдера, а сам конкурс продлится до 31 мая 2009. Так что если у вас есть что искать, а еще лучше - сайт с верной аудиторией, готовой поддержать его в конкурсе - давайте попробуем? [читать дальше]

формат robots.txt


Я читал, что поисковый сервер перебирает все правила в robots.txt и останавливается на первом подходящем. Поэтому, я наивно полагал, что если разместить блок "User-agent: *" в начале файла, его правила будут использоваться в любом случае. То есть, мой robots.txt выглядел так:


# Общие правила для всех поисковиков: служебные страницы для логина и пр.
User-agent: *
Disallow: /login
Disallow: /signup
...

# Указание на файл с картой сайта
Sitemap: http://{доменное имя}/sitemap.xml

# Дополнительные правила для Google (используя расширенный синтаксис)
User-agent: Googlebot
Disallow: /*/edit$

# То же самое для Yandex
User-agent: Yandex
Disallow: /*/edit$
Однако, случайно я обнаружил, что страница "/login" вполне доступна для индексирования (проверял в инструментах веб-мастера Google и Yandex). Оказалось, что если в robots.txt есть секция для конкретного поискового севера (например, "User-agent: Yandex"), этот сервер вообще не обращает внимания на остальные секции, в том числе и на "User-agent: *". Единственное правило, которое они обнаруживают в любом месте, это "Sitemap:" - он доступен всем и везде не смотря на строки "User-agent:". [читать дальше]

формат robots.txt Файлы robots.txt просты как угол дома и используются со времен, когда 3" дискеты считались прорывом в технологии :) Именно по этому я думал, что в них нечего и разбираться. Так что обходился копи-пастом какого-то образца, который переходил у меня из проекта в проект уже несколько лет.

Но вот однажды, затеял я эксперимент с индексацией сайта. Выложил его в инет, добавил в "Инструменты для веб-мастеров" Google и ... увидел сообщение "Страницы вашего сайта недоступны для Google из-за огранчений в robots.txt". А файл-то был простейший, создавался он ради одной строчки "Sitemap: http://доменное имя/sitemap.xml", чтобы лишний раз указать поисковикам где искать карту сайта.

Между прочим, robots.txt кешируется Google примерно на день, так что после исправления пришлось ждать более суток. Вобщем я вздохнул и полез разбираться с темой.

Robots.txt был придуман в далеком 1994 году и был предназначен для того, чтобы указать поисковикам, что не следует индексировать на вашем сайте. [читать дальше]

Web Slices IE 8 Если вы слушали доклады или читали статьи о новинках IE 8, то должны помнить, что добвить web slices (веб-фрагменты) к своему сайту проще простого. Легкий взмах руки (добавление 2-3 аттрибутов в html) - и вы смело можете утверждать, что ваш сайт по полной использует возможности новой версии браузера!

Но так ли все просто на самом деле? Конечно, в наше время верить в чудеса стало легче. Кто-то еще помнит, сколько усилий и времени нужно было потратить, чтобы заставить общаться клиентскую и серверную части кода по DCOM? Чувствуете разницу, реализуя все то же сейчас на WPF? (кстати, намного больше усилий приходилось тратить не на реализацию, а на поддержку этого рершения в локальных сетях заказчиков; в десяти случаях все нормально, в одиннадцатом - нет; и сеть такая же, и руки админ мыл - а не работает. Ладно, это так, лирика :)

Знаете, в программировании, да и в любой другой высокотехнологичной среде, вместо ответов "да" и "нет" практически всегда звучит "да, но ..." и "нет, хотя ...". И это правильно, ведь для того, чтобы правильно задать вопрос, нужно знать большую часть ответа. Вот и сейчас, можно смело сказать, "да, легко, но ...".

Ну что, посмотрим, что скрывается за этим многоточием?

Для наглядности возьмем пример, на котором я разбирался с web slices сам: модуль, выводящий последние результаты футбольных матчей. Для web slices это практически идеальный кандидат - часть страницы с постоянно обновляющейся информацией, которая интересна многим пользователям.

В лучших традициях инкапсуляции сам модуль выглядит у нас так:
<common:LiveResults ID="lr" runat="server"/>
Итак ...

Web slices - взгляд первый

Web Slices FanNet.org Легкий взмах руки:
  • Выделяем нужную нам область тегом div, отмечаем его классом "hslice" и придумываем какой-нибудь id (это обязательное условие для web slices, не важно какой, но id нужен)

  • Внутрь div-а добавляем тег, помеченный классом "entry-title". Он нужен для того, чтобы IE мог определить название нашего веб-фрагмента. Устанавливаем ему стиль "display:none", чтобы сделать невидимым для пользователя.

    Кончно, можно прекрасно использовать и тег с заголовком внутри нашего модуля. Я вынес заголовок, чтобы полностью изолировать логику web slice от user control и оставить ему только отрисовку результатов. А будут они отображаться на странице или как web slices - не user control-ного ума дело.
Получаем вот что:
<div id="liveRes" class="hslice">
    <span class="entry-title" style="display:none">Online-результаты</span>
    <common:LiveResults ID="lr" runat="server"/>
</div>
И все действительно работает. Наводим на модуль мышкой, выбираем "Добавить на панель избранного" и получаем симпатичную кнопку с последними матчами.

Часть ответа со словом "да" мы честно отработали. Теперь посмотрим, что у нас означает "но". [читать дальше]

Браузеры, кнопка Back и кеширование страниц Это - браузеры. Они отображают наши станицы.
А это - кеш браузера. Он старается, чтобы наши страницы отображались быстрее.
А это - AJAX. Он тоже старается, чтобы наши страницы отображались быстрее.
Но иногда, приходится стараться, чтобы они так не старались. Об одном таком случае и пойдет речь.

Итак, представте, что на вашем сайте есть страница, которая сама периодически обновляет список с online-информацией. Да через тот же AJAX. Чтобы представлять было проще, возьмем конкретный пример - текущие результаты футбольных матчей, которые обновляются примерно раз в две минуты. Online-результаты футбольных матчей на FanNet.org Болельщик открывает страницу - и на ней всегда актуальная информация. Теперь, он уходит на другую страницу, скажем, посмотреть описание какого-то матча. А потом ему хочется вернуться и он нажимает кнопку "Back". И видит, что последний раз результаты матчей обновлялись в момент, когда он уходил с этой страницы.

На первый взгляд - ничего страшного. Ясное дело, браузер взял страницу из кеша и поправить это - дело минуты.

Как вы уже догадались, все немного сложнее, иначе бы этого поста просто не было.

Первым делом, я решил запретить кеширование страницы. Результат был несколько странным - под IE все работало нормально, под FF - ничего не изменилось.

Ну вот, опять приходится читать документацию, вздохнул я и начал читать.

[читать дальше]