Как справиться с совместным использованием Facebook / как с URL-адресами hashbang?
Я создаю веб-сайт, где с домашней страницы я открываю какой-то другой URI на веб-сайте в лайтбокс (AJAX), и я хочу использовать HTML5 push-состояния и хэш-удары как запасной вариант для управления изменениями состояний.
Теперь я хочу, чтобы URL можно было сканировать, а Facebook делиться / нравится.
Если пользовательский браузер поддерживает push-состояние HTML5, нет проблем, он может поделиться URL-адресом (например:http://myserver/example
) и Facebook найдут соответствующие метаданные OG в статическом контенте.
Но если пользователь использует браузер HTML4, у него будет такой URLhttp://myserver/#!/example
, и я хочу, чтобы он мог поделиться этим через Facebook в любом случае ...
Теперь похоже, что Facebook поддерживает метод замены _escaped_fragment_, поэтому я просто перенаправил бы запросы отhttp://myserver/?_escaped_fragment_=/example
вhttp://myserver/example
и все должны быть счастливы ...
Поэтому я добавил условие перезаписи в свой htaccess:
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=([^&]*)
RewriteRule .* http://%{HTTP_HOST}/%1? [R=301,L,NE]
Моя проблема заключается в том, что я не могу заставить его работать с Facebook, а с Facebook, похоже, он уходит в процент все время часть URL после хеш-бенга, что приводит к таким URLhttp://myserver/%2Fexample
который приземляется до 404 :-(
Кто-нибудь знает, как обмануть Facebook, чтобы он не избежал этой части URL? Могу ли я сделать что-то на стороне apache mod_rewrite?
Я также открыт для любой другой допустимой стратегии URL-адресов, доступных для сканирования ajax;)