ПредысторияЗаказчик приблизительно ежемесячно регистрировал для нового торгового проекта домен типа «название_проекта.рф» (на русском). При этом доплачивал неплохие деньги web-студии за подключение и настройку нового проекта. Уникальной информации на каждом проекте порядка двух страниц.
И вот меня попросили «сделать им админку» для самостоятельного добавления новых проектов, пусть и без использования доменов второго уровня. Я в свою очередь предложил такой тип адресации: имя_компании.ru/название_проекта, где имя_проекта на русском. Из моей головы совсем вылетело, что в браузерах InternetExplorer все не cp1252 символы адреса становятся человеко-нечитаемыми.
Любуясь завершенной работой в разных браузерах — был разочарован неэстетичностью выбранного ранее подхода. И единственное решение, пришедшее в голову — ниже представленный скрипт.
По статистике у сайта менее 200 посетителей в месяц, 10-30% из них на IE.
Суть:
Данная ф-ия находится в начале html-страницы и заменяет адрес страницы в браузерах InternetExplorer на его читабельное utf-8 представление.
При этом происходит перезагрузка страницы, но в адресной строке остается читабельный адрес. (проверял только в IE9 + ieTester)
(function() {
// Заменяет в ie кракозябры на русские буквы.
if(navigator.appName !== 'Microsoft Internet Explorer'){
console.log("Это не IE");
return;
}
var newHref = decodeURIComponent(window.location.href); // Заменяем кракозябры на русские.
if(newHref == window.location.href) {
console.log("В location изменять нечего");
return;
}
if(window.location.href.indexOf("#-") !== -1) {
console.log("Это повторный заход");
return;
}
window.location.replace(newHref+"#-"); // Переадресация.
})();
Знаете ли вы, какие проблемы могут возникнуть с индексацией, кешированием и apache+php, почти одновременно выполняющих по два одинаковых запроса?
P.S.Да знаю я что это ужасно. Но серверу вообще плевать на сотню лишних запросов в месяц. Пользователям IE (если проблем нет) — это лишний ping + еще_немного по времени и лишняя, страничка(только тело) по трафику.