Почему Twitter использует хеш и восклицательный знак в URL-адресах и как они переписывают поисковые URL-адреса? - PullRequest
32 голосов
/ 19 января 2011

Мы понимаем, что хеш предназначен для поиска AJAX, но восклицательный знак? Кто-нибудь знает?

Кроме того, атрибут "action" для их формы поиска указывает на "/ search", но при выполнении поиска в URL появляется восклицательный знак хеша. Они просто перенаправляют из "/ search" в "/ #! / Search"?

Примечание: вторая часть q остается без ответа: то есть они перенаправляют пользователя из "/ search" в "/ #! / Search" или отправляют пользователя в " / поиск "и использовать JS на странице, чтобы переписать URL? - Crashalot 26 января в 23:51

Спасибо!

Ответы [ 3 ]

31 голосов
/ 19 января 2011

Это фактический стандарт, который Google установил для обеспечения согласованности и обеспечения возможности сканирования URL-адресов ajax.

См. http://code.google.com/web/ajaxcrawling/docs/getting-started.html

Я считаю, что они используют history.pushState.Вы можете сделать history.back() в консоли, и она вернет вас на страницу.

23 голосов
/ 15 июня 2011

Да, он перенаправляет с HTTP 302.

Кстати, "!"используется для исключения случая с пустым хешем.«http://url #» заставит браузер скользить вверх.

9 голосов
/ 31 августа 2011

Чтобы ответить на вторую часть, тогда: она перенаправляет вас на /#!/search.

Если вы посмотрите на заголовки ответа при переходе к http://twitter.com/britishdev (штекер), вы получите 302 (временное перенаправление) с заголовком Location, установленным как "Location: http://twitter.com/#!/britishdev"

Да, тогда JavaScript обрабатывает все ваши детали на странице назначения, но независимо от того, куда вы перенаправлены.

...