Как обрабатывать общий доступ к facebook / лайк с URL-адресами hashbang?

Я создаю веб-сайт, на котором с домашней страницы я открою другой URI на веб-сайт в лайтбокс (AJAX), и я хочу использовать состояние push HTML5 и хэш-взломы в качестве запасного варианта для управления изменениями состояний.

Теперь я хочу, чтобы URL-адреса можно было сканировать, а Facebook - для совместного использования / просмотра.

Если браузер пользователя поддерживает состояние push HTML5, нет проблем, он может поделиться URL-адресом (например: http: // myserver / example ), и Facebook найдет соответствующие мета OG в статическом контенте.

Но если пользователь использует браузер HTML4, у него будет URL типа http: // 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-адреса после хэшбэга, в результате чего получаются такие URL-адреса, как http: // myserver /% 2Fexample , который попадает на 404: - (

Кто-нибудь знает, как обмануть Facebook, чтобы он не экранировал эту часть URL? Могу ли я сделать что-нибудь на стороне apache mod_rewrite?

Я также открыт для любой другой действующей стратегии URL-адресов для сканирования / просмотра URL с помощью ajax;)

17
задан skiplecariboo 17 January 2012 в 10:46
поделиться