Вырежьте "? _Escaped_fragment_ =" и перенаправьте на html / php - PullRequest
1 голос
/ 20 мая 2019

Я вижу некоторые ссылки в консоли поиска Google, и они выглядят так:

example.com/somedir/3.html?_escaped_fragment_=

Как вырезать эту часть: ?_escaped_fragment_= и перенаправить на текущий html / php файл?

Должно быть так:

  • Пользователь вводит эту ссылку: example.com/somedir/3.html?_escaped_fragment_=
  • и перенаправлен на example.com/somedir/3.html

Я нашел возможный способ, но не могу переделать его для себя ... Этот "RewriteRule" перенаправляет на главную страницу. Но мне эта функция не нужна ...

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%1? [L,R=301]

Пожалуйста, помогите.

1 Ответ

1 голос
/ 20 мая 2019

Обратите внимание, что параметр _escaped_fragment_ URL был частью спецификации сканирования Google AJAX (устарело с октября 2015 г.) с использованием URL-адресов в стиле #!, поэтому убедитесь, что ваш сайт по-прежнему не использует это.

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%1? [L,R=301]

Это правильная идея, так как вам нужно проверить значение серверной переменной QUERY_STRING, однако целевой URL, возможно, неверен. (Возможно, это было бы правильно, если бы вы все еще использовали эту спецификацию.)

Вместо этого попробуйте что-то вроде следующего:

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=
RewriteRule (.*) /$1 [QSD,R=302,L]

Выше следует перенаправить URL-адрес вида example.com/somedir/3.html?_escaped_fragment_=<anything> на example.com/somedir/3.html.

Флаг QSD (Apache 2.4+) необходим для удаления строки запроса из целевого URL.

Обратите внимание, что это 302 (временное) перенаправление. Перейдите на 301 (постоянное) перенаправление только после того, как вы подтвердите, что он работает нормально - во избежание проблем с кэшированием. 301 перенаправления постоянно кэшируются браузером (включая любые ошибочные перенаправления).


Пользователь вводит эту ссылку: example.com/somedir/3.html?_escaped_fragment_=

Пользователи обычно не будут вводить подобные ссылки. Они не должны даже быть связаны с поисковыми системами, если только в какой-то момент не было неправильной конфигурации сайта? Итак, в зависимости от того, как / откуда эти URL-адреса связаны (проверьте отчет в GSC), вы могли бы вместо этого даже рассмотреть возможность блокировки этих URL-адресов? Например:

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=
RewriteRule ^ - [F]

Выше будет возвращено 403 Запрещено.

...