work-flow-Initiative
Исторический портал о Родине, электронный музей СССР 16+

Путь


Соседние разделы

    Операции

    WFI.lomasm.ru исторические материалы современной России и Советского Союза, онлайн музей СССР
    К началуК началу
    В конецВ конец
    Создать личную галереюСоздать личную галерею
    Создать личный альбомСоздать личный альбом
    Создать материалСоздать материал

    wfi в ногу со временем

    Оценка раздела:
    Нравится
    4
    Не нравится

    Необычный подход к созданию копируемых URL адресов страниц без кодирования нелатинских символов в UTF

    Дата публикации: 2016-08-25 12:01:32
    Просмотров: 362
    Автор:
    Как на сайте реализовать копируемые URL адреса с кириллицей без преобразования их в UTF кодировку.
     
    Как видно на этом сайте URL содержат кириллические символы и при копировании ссылки страницы произойдет их преобразование в кодировку UTF. Вместо читабельного: Необычный подход к созданию копируемых URL адресов страниц без кодирования нелатинских символов в UTF мы получим нечто подобное http://wfi.lomasm.ru/%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9

    С этим можно бороться на стороне браузера. Для Chrome есть специальный плагин, для FireFox можно отключить преобразование ссылки отключив опцию network.standard-url.escape-utf8 в настройках. Но я попытаюсь бороться с нелатинскими (кириллическими и прочими) символами в ссылке на стороне сервера\сайта.
     
    Способ необычный и не подходит для большинства сайтов, но для AJAX сайтов может пригодится или поможет в реализации похожих нестандартных трюков.
     
    Метод очень прост 
    К сожалению, как выяснилось в FireFox не работает, но надеюсь и эту проблему можно будет обойти в будущем.
    Если у вас не Firefox и ваш браузер преобразовывает ссылки при копировании попробуйте скопировать ссылку данной статьи, вы получите читаемую ссылку не кодированную в UTF.
    Ссылка будет выглядеть так: http://wfi.lomasm.ru/=#русский.wfi_в_ногу_со_временем/необычный_подход_к_созданию_копируемых_url_адресов_страниц_без_кодирования_нелатинских_символов_в_utf
    Оригинальный адрес статьи выглядит так: http://wfi.lomasm.ru/русский.wfi_в_ногу_со_временем/необычный_подход_к_созданию_копируемых_url_адресов_страниц_без_кодирования_нелатинских_символов_в_utf

    Если в ссылке перед латинскими символами поставить символ #, текст после него не будет преобразован.
    Для того чтобы реализовать это, нам надо добавить в URL данный символ при помощи метода history.pushState.

    <script type="text/javascript">
    window.history.pushState("null", "null", "http://wfi.lomasm.ru/=#русский.wfi_в_ногу_со_временем/необычный_подход_к_созданию_копируемых_url_адресов_страниц_без_кодирования_нелатинских_символов_в_utf");
    </script>

    Теперь, такой ссылкой приятно поделиться. Но как попасть на нужный материал перейдя по ней, ведь теперь ссылка указывает на главную, а все что после # это параметры для Hash-навигации.

    Тут поможет не менее простой скрипт, которому я дал имя = и положил в корень сайта, а можно было разместить и на главной.

    <script>
    function rehash()
    {
       var localhash = location.hash.substring(1);
       if (localhash !="") {
          localhash=decodeURI(localhash);
          window.location = localhash;
       }
    }
    rehash();
    </script>

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

    Примеры использования:

    Например: (для неиндексируемых)
    Материал: статус заказа 011734 покупка электронных компонентов
    Имеет URL http://site/статус заказа 011734 покупка электронных компонентов
    URL ссылки которые не нужно индексировать, но которыми можно поделиться без деформации URL можно дополнить символом # но тут потребуется редирект с помощью скрипта на отдельной странице или на главной.
    http://site/=#статус заказа 011734 покупка электронных компонентов
    или
    http://site/статус заказа 011734 покупка электронных компонентов
     
    Например: (без проблем с индексацией)
    Статья: О_продвинутом_WFI_сервере
    Имеет короткий URL http://site/Gtf23J или http://site/id=43221
    Такой URL можно обернуть читабельным и понятным заголовком материала, который можно скопировать и вставить в блокнот или поделиться с товарищем, редирект при этом не нужен.
    Таким образом:
    http://site/Gtf23J#О_продвинутом_WFI_сервере или http://site/id=43221#О_продвинутом_WFI_сервере

    Чтобы сделать все ссылки на странице "копируемыми" можно так же добавить к ним =#, но это уже другая история... так как в итоге получится полноценный AJAX сайт, о чем можно почитать например тут: https://habrahabr.ru/post/114911/

    Автор "lomasm" (Андрей Степнёв) При копировании материалов ссылка обязательна.
    Оценка материала:
    Нравится
    0
    Не нравится
    Описание материала: Как на сайте реализовать копируемые URL адреса с кириллицей без преобразования их в UTF кодировку

    ПредыдущаяПервые шаги WFI и Accelerated Mobile Pages
    Остальные материалы раздела: wfi в ногу со временем

    Заказ электронных компонентов

    Оставить комментарий

    как гость

    Похожие материалы:

    смело. товарищи в ногу 2.mp3
    смело. товарищи. в ногу.mp3

    Новые альбомы:

    Разработка страницы завершена на 0%
    Яндекс.Метрика

    Поиск

    Язык

    [ РУССКИЙ ]

    Авторизация


    Войти в social_apps
    Social Apps
    https - перейти на защищенную версию сайта

    Поддержка



    Изменить размер шрифта: + -

    Полезные советы...

    Навигация