Несколько символов хэша в URL-адресе

Или, может быть, вы называете его "острым" - символом #.

Я столкнулся с одним экземпляром, где #! и #, используемые одновременно в одном URL-адресе. От чтения других статей, включая RFC, я не могу понять, является ли это юридической комбинацией или нет. При встрече с такой страницей браузер Mozilla (Iceweasel в этом случае) отображает URL-адрес как имеющий номер 2, в то время как Chrome отображает только один, но вскоре он умирает (вкладка, содержащая страницу, перестает отвечать на запросы и падает, но может быть не связана).

Теперь, мой вопрос: законно ли иметь как в одном URL-адресе, может быть, это законно и избыточно (должно быть нормировано), или это просто ошибка в браузере Mozilla? Итак, предположим, что я делаю запрос AJAX или пытаюсь перейти к истории браузера - что мне делать, если я столкнулся с этой ситуацией?

double hash in url

RFC-3986: http://tools.ietf.org/html/rfc3986#section-3.4, который должен прояснить его... на всякий случай.

Также: https://developers.google.com/webmasters/ajax-crawling/docs/specification, как сканеры Google видят вещи.

Ответ 1

Формат фрагмента допускает только слэши, вопросительные знаки и pchar s. Если вы посмотрите на RFC, вы увидите, что метка hash не действительна pchar.

Однако браузеры будут стараться читать недействительные URL-адреса, обрабатывая повторяющиеся хэши, как если бы они были экранированы, как вы можете видеть, проверив значение window.location.hash (в IE, Firefox и Chrome) для

http://www.example.com/hey#foo#bar

который является тем же window.location.hash для

http://www.example.com/hey#foo%23bar

Ответ 2

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

Этот тип URL:

http://www.example.com/hey#foo#bar

Кажется, меня действительно сбивает с толку и будет еще более запутанным для обычных пользователей и, возможно, для поисковых систем.