Estoy construyendo un sitio web donde desde la página de inicio abriré algún otro URI en el sitio web en un lightbox (AJAX), y quiero usar HTML5 push state y hash bangs como una alternativa para administrar cambios de estados.¿Cómo manejar el uso compartido de Facebook/me gusta con las URL de hashbang?
ahora quiero las URLs sean rastreables y Facebook compartible/simpática ..
Si el navegador del usuario soporta HTML5 estado de empuje, no hay problema, se puede compartir la dirección (por ejemplo: http://myserver/example
) y Facebook encontrará las metas OG apropiadas en el contenido estático.
Pero si el usuario utiliza un navegador HTML4, tendrá una url como http://myserver/#!/example
. y yo quiero que él sea capaz de compartirlo a través de facebook de todos modos ...
Ahora parece que Facebook es compatible con el método de sustitución _escaped_fragment_, así que aunque me gustaría simplemente redirigir las peticiones de http://myserver/?_escaped_fragment_=/example
a http://myserver/example
y todo el mundo debe ser feliz ...
por lo que añade una condición de reescritura a mi htaccess:
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=([^&]*)
RewriteRule .* http://%{HTTP_HOST}/%1? [R=301,L,NE]
mi problema es que no puedo hacer que funcione con Facebook, con Facebook linter parece ciento de escape de todo el tiempo la parte de la UR L después de la Hashbang, lo que resulta en URLs como http://myserver/%2Fexample
que las tierras a un :-(404
¿Alguien sabe cómo engañar a Facebook para que no se escape esta parte de la URL? ¿Puedo hacer algo en el lado apache mod_rewrite?
También estoy abierto a cualquier otra estrategia válida ajax URL rastreable/agradable;)
Por favor, algunos detalles –