Facebook хочет, чтобы вы использовали метатег og:locale:alternate
, чтобы объявить, на каких языках доступен ваш сайт. Непринужденно вместо того, чтобы иметь рефрен в теге, когда они хотят использовать альтернативный локальный, нажмите &fb_locale=es_ES
до конца URL-адреса (или того, что он хочет). Моя проблема заключается в том, что мой сайт является статическим, поэтому я не могу легко прочитать эту дополнительную информацию, так что было неудобно, если бы в файле .htaccess был способ переназначить URL-адрес.Как использовать локализацию facebook на статической странице
так (.*)(?|&)fb_locale=(.*)
к [first 2 letters of $3]/[everything but first 2 letters of $1]
так
en/test.html?fb_locale=es_ES
должны пойти
es/test.html
RewriteCond %{THE_REQUEST} /([^/]+)/(.*)[\?&]fb_locale=([^_]+)_(.*) [NC]
RewriteRule^/%3/%2 [NC,L,R]
почти работает, но почему-то значение после? все еще добавляется.
. Чтобы сделать это еще точнее, я ограничил первую группу захвата двумя буквами. 'RewriteCond% {THE_REQUEST} /([^/]+){2}/(.*)[\?&]fb_locale=([^_]+)_([^\s]+) [NC]' и установить перенаправление на постоянный 'RewriteRule^/% 3 /% 2? [NC, L, R = 301] ' –
@matthewCornelisse Ваша первая группа захвата по-прежнему захватывает один или несколько символов, исключая /, правильный синтакс равен ** ([^ /] {2}) ** – starkeen