Доброго времени суток, дорогие читатели блога Мои тараканы!

Конфликт прагинов

В комментариях к прошлой статье мне указали на один баг в работе сайта. А именно на то, что ссылки в статье ведут на несуществующий документ.

Дело в том что у меня линки на внешние сайты замаскированы под внутренние. Для этого я использую плагин WP-NoExternalLinks. Плагин работает следующим образом — он, в начало URL внешней ссылки, через разделитель, добавляет адрес моего блога. Пример: http://moi-tarakany.ru/goto/http://site.ru. Но при клике на такую ссылку происходит редирект посетителя по нужному адресу. Таким образом, внешние ссылки визуально похожи на внутренние, но на самом деле ведут пользователя на посторонний (в смысле не мой) ресурс.

На счет того, полезна или вредна маскировка ссылок через редирект есть много мнений. Но поскольку, этот метод я начал использовать очень давно и никаких проблем (в плане SEO) с ним не возникало (как мне кажется), то экспериментировать, что-то менять, я не собираюсь.

Так вот, причиной бага с неработающими ссылками оказался конфликт WP-NoExternalLinks с другим плагином. Конфликты возникали и раньше, поэтому я решил описать все известные мне ситуации и способы их решения.

Конфликт с Hyper Cache

Плагин кэширования Hyper CacheПервый плагин, который не подружился с WP-NoExternalLinks, был плагин кэширования Hyper Cache. Как и в ситуации, которую я описал в начале статьи, при переходе по внешней ссылке, посетителя перекидывало на страницу 404.

Вкратце расскажу, как работает плагин Hyper Cache. Вы запрашиваете страничку сайта, wordpress обрабатывает ваш запрос, достаёт из БД (базы данных) все, что должно содержатся на этой странице, плагина обрабатывают это содержимое и лишь потом вы получаете результат в окне браузера. Hyper Cache сохраняет сгенерированную страницу в кэше и при следующем запросе выдаёт вам (или любому другому пользователю) сохранённую копию, минуя длинный путь формирования страницы, что уменьшает скорость её загрузки и уменьшает нагрузку на сервер.

Но вот здесь и кроется основная закавыка. Внешние ссылки в сохраненной копии страницы не обрабатываются плагином WP-NoExternalLinks. То есть, вместо редиректа на внешний ресурс пользователь попадает на внутреннюю страницу вида http://moi-tarakany.ru/goto/http://site.ru, но, как вы понимаете, такой страницы на сайте не существует (404 Not Found). А это не есть гуд.

На многих сайтах советовали в настройках плагина Hyper Cache указать исключения для страниц имеющих в урле /goto/. Я указывал и /goto/ и http://moi-tarakany.ru/goto/ и moi-tarakany.ru/goto/ и /404/— всё зря, ничего не помогло.

Тогда я просто сменил плагин кэширования на WP Super Cache, о чем ни грамма не жалею. Этот плагин оказался ни чем не хуже, я бы сказал даже лучше. Так что, если у вас возникнет похожая проблема — смело сносите Гипер Кеш.

Конфликт с WP-HTML-Compression

Плагин WP-HTML-CompressionWP-HTML-Compression предназначен для сжатия HTML-кода страницы выдаваемой пользователю. Он удаляет лишние пробелы в коде, переносы, отступы и всякое такое. На выходе вес странички (объем кода) уменьшается на несколько килобайт, что положительно влияет на скорость загрузки сайта и, соответственно, на более лояльное отношение к нему со стороны поисковиков.

Хотите посмотреть, как сжимает он ссылки. Из ссылки такого вида http://moi-tarakany.ru/goto/http://site.ru он вырезает всё лишнее http://moi-tarakany.ru/goto/http://site.ru и превращает в такую /goto/http:/site.ru. С тем что он превратил абсолютную ссылку в относительную (обрезал http://moi-tarakany.ru) WP-NoExternalLinks справился. Но вот удаление второго слеша после http:, хотя компрессор действовал правильно (не допускается два слеша подряд в адресе сайта), ввело его в ступор. Как следствие редирект на 404 Not Found.

Моим решением было отказаться от WP-HTML-Compression пока не найду подходящую замену. Ещё не тестировал другие плагины из этой серии, но предполагаю, что проблема будет повторяться.

Кстати, никто не посоветует, чем можно заменить WP-HTML-Compression?

Конфликт с BBQ: Block Bad Queries

Плагин BBQ: Block Bad QueriesДетально о его работе напишу в одной из следующих статей, а сейчас скажу только что, он неплохо предохраняет ваш сайт от взлома.

Лично у меня, с этим плагином проблем не возникало, потому что у меня его нету 🙂 . Но ходят слухи что, одновременно эти два плагина не работают. Выбирайте сами чего вы хотите: рыбку съесть или на ёлку залезть.

На этом список плагинов конфликтующих WP-NoExternalLinks у меня исчерпан, ну и слава богу. Если вы знаете ещё какой-то — пишите в комментариях, добавлю в список.

С уважением, Мышак Пётр.

Похожие записи:

Понравилась статья? Расскажи друзьям, автор очень старался:
Один комментарий на:
“Не работает WP-NoExternalLinks. Есть решение — конфликт с другими плагинами WordPress”
  • Алексей говорит:

    С Hyper Cache проблема решаема — там надо внести мелкую правку в файл плагина, чтобы уменьшить приоритет исполнения.

    А вот у меня другая проблема с WP Noexternal Links. Периодически в логах вебсервера появляется такое:

    /goto/https:/play.google.com/store/apps/https:/play.google.com/store/apps/https:/play.google.com/store/apps/https:/play.google.com/store/apps/https:/play.google.com/store/apps/https:/play.google.com/store/apps/https:/play.google.com/store/apps/https:/play.google.com/store/apps/https:/play.google.com/store/apps/https:/play.google.com/store/apps/https:/play.google.com/store/apps/https:/play.google.com/store/apps/https:/play.google.com/store/apps/https:/play.google.com/store/apps/https:/play.google.com/store/apps/https:/play.google.com/sto

    И так ещё долго. В общем циклическая переадресация. Причём воспроизвести у меня это не получается. Но зато получается бесконечная переадресация на таком редиректе site.ru/goto/kudasite.ru

    В общем, если ввести сайт без протокола, браузер делает циклическую переадресацию. Но при этом в ответе сервера чётко стоит Location kudasite.ru. Мистика какая-то...

Добавить комментарий

Перед комментированием ознакомтесь с правилами комментирования
  • Все комментарии проходят ручнуюю модерацию, поэтому большая прозьба - НЕ СПАМИТЬ!!!
  • Подписывайтесь нормальными именами, а не "регистрация в Москве" или "Кондиционеры не дорого".
  • Ссылки на коммерческие сайты будут удалятся.
  • Оставляйте ссылку на главную страницу.
  • Оставляйте комментарии длинной не менее 100 символов. Исключения - диалоги и ответы на заданные вопросы.
Внимание! Один раз в неделю блог прходит проверку на наличие битых ссылок. Если ваш сайт в это время не был доступен, ссылка на него будет удалена!
За собой оставляю право редактировать и удалять комментарии, даже если они удовлетворяют вышепреведённый свод правил.