Я создаю веб-сайт, где с домашней страницы я буду открывать какой-то другой URI на веб-сайте в лайтбокс (AJAX), и я хочу использовать HTML5 push-состояния и хэш-удары в качестве запасного варианта для управления изменениями состояний.
Теперь я хочу, чтобы 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-адресов, доступных для сканирования ajax;) *