Я создаю веб-сайт, на котором с домашней страницы я открою другой 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;)