Насколько плохо перенаправлять пользователей IE для избежания кракозябр в строке адреса?

ПредысторияЗаказчик приблизительно ежемесячно регистрировал для нового торгового проекта домен типа «название_проекта.рф» (на русском). При этом доплачивал неплохие деньги 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 + еще_немного по времени и лишняя, страничка(только тело) по трафику.
  • Вопрос задан
  • 3686 просмотров
Пригласить эксперта
Ответы на вопрос 1
Правильнее ваше перенаправление сделать на стороне сервера, чтобы на бекенд не приходило два запроса, первый из которых бесполезный. Так на вскидку — на nging такое можно сделать, используя модуль set_misc и его команду set_unescape_uri
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
24 нояб. 2024, в 01:25
1000 руб./за проект
24 нояб. 2024, в 01:24
500 руб./за проект
24 нояб. 2024, в 00:04
5000 руб./за проект