пятница, 28 января 2011 г.

Как обновить favicon.ico в Firefox

Иногда, встречается проблема обновления favicon.ico для Firefox, из-за чего трудно протестировать его при редизайне. Даже после сбрасывания кеша, Firefox часто продолжает отображать старый favicon. В таком случае, помогает такой прием:

зайдите на корневую страницу сайта (например http://www.mysite.com/), после чего перейдите по прямой ссылке на ваш фавикон: http://www.mysite.com/favicon.ico

После чего, в окне браузера отобразится обновленная картинка фавикона. Дальше, перейдите назад на корневую страницу вашего сайта и вы увидите что фавикон обновился успешно.

Для очистки кеша, куки и т.д. в Firefox - нажмите Right Ctrl+Right Shift+Del, выберите нужные галочки, период времени за которое нужно все очистить и нажмите "Очистить сейчас". Комбинация работает в IE8+, Chrome


среда, 12 января 2011 г.

Проверка версии браузера с помощью htaccess

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

Решение: 
Такая задача возникает, если вы отказываетесь поддерживать старые версии браузеров и тратить на них время. Создаем html страницу, на которой выводим информацию, о том, что браузер пользователя устарел, и новую версию можно скачать перейдя по ссылке(ам).

Задачу можно решить с помощью javascript (пример реализации использует jquery), создаем javascript файл и подключаем его в главный шаблон сайта:

jQuery(document).ready(function(){
  if(jQuery.browser.msie && jQuery.browser.version < 7){
    location.href("update-browser.html");
  }
});


Тут проверка проводится для ИЕ6, но не составит труда дописать проверку для других браузеров.

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

Пример:

RewriteCond %{HTTP_USER_AGENT} MSIE\ ([56])\.
RewriteRule !\.(css|png|js|gif)$ update-browser.html [L]

С первой строкой все ясно: тут определяем версию ИЕ. Вторая строка заставляет редиректить пользователся на страницу с информацией во всех случаях, кроме тех когда загружаются картинки, стили и скрипты. Если не исключать такие файлы по маске - тогда никогда не подгрузится оформление страницы update-browser.html.

Для остальных браузеров похожие правила:

RewriteCond %{HTTP_USER_AGENT} Firefox/2.* # Firefox > 2
RewriteCond %{HTTP_USER_AGENT} Safari/[0-3] # Safari > 3
RewriteCond %{HTTP_USER_AGENT} Opera/[0-9] # Opera > 9
...