Просмотров: 1 075

Плагин redirection для wordpress не перенаправляет некоторые url-адреса.

Приветствую, уважаемый читатель. Хотел рассказать о проблеме, с которой я на днях столкнулся.

У меня на сайте установлен плагин redirection для wordpress, кроме того этот плагин установлен у одного из моих клиентов, которому я помогал выполнить определенные работы на его сайте.

Плагин прекрасно работает и успешно перенаправляет с исходного url на требуемый, но пришлось столкнуться с одной проблемой. Иногда попадались такие url-адреса, которые никак не хотели перенаправляться этим плагином.

Долго думал, в чем же проблема, а все было намного проще. Оказалось, что эти адреса содержат в себе символы, которые запрещено использоваться в url-адресе.

Согласно стандарту это такие символы как:

— управляющие коды из кодировки US-ASCII с шестнадцатеричными значениями 00 до 1F и 7F.

— символ пробела (20)

— разделители «<» | «>» | «#» | «%» | <«>

— символы «{» | «}» | «|» | «\» | «^» | «[» | «]» | «`» | «;» | «?» | «:» | «@» | «&» | «=» | «+» | «$» | «,»

— символы национальных алфавитов не входящие в кодировку US-ASCII

Чтобы сделать перенаправление с такого url, нужно сначала заменить запрещенные символы в url-адресе специальным кодом.

Сделать это можно, например, с помощью сервиса:

http://meyerweb.com/eric/tools/dencoder/

Например, в этом url, использовался знак «минус» вместо тире, который является запрещенным для размещения в url:

krym-–-ne-tolko-more

Я вставил его в соответствующее поле:

20-05-2013 12-33-53

И нажал на кнопку Encode.

В итоге получилась следующая форма записи:

krym-%E2%80%93-ne-tolko-more

Все запрещенные символы заменились.

После такого преобразования, полученный url-адрес можно вставлять в поле для переадресации в плагине redirection и все должно начать перенаправляться.

Надеюсь, что это поможет вам решить проблему с перенаправлением. Удачи!