Я создаю веб-сайт, где с домашней страницы я открою какой-то другой URI на веб-сайте в лайтбокс (AJAX), и я хочу использовать push5 push и хеширование HTML5 как резерв для управления изменениями состояний.
Теперь я хочу, чтобы URL-адреса выполнялись с возможностью сканирования, а Facebook - совместимыми и доступными.
Если пользовательский браузер поддерживает состояние push5 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 linter - это процент, который все время остается частью URL-адреса после hashbang, что приводит к URL-адресам
http://myserver/%2Fexample
, который приземляется на 404: - (
Кто-нибудь знает, как обмануть Facebook, чтобы не ускользнуть от этой части URL-адреса? Могу ли я что-то сделать на стороне apache mod_rewrite?
Я также открыт для любой другой действующей стратегии arawl crawlable/likeable URL;)