Скрипт редиректа на php. Видео и файлы. Заходи!
Здравствуйте, с вами Денис Герасимов и сегодня мы с вами поговорим о простом скрипте редиректа, который сделан на php.
Я его очень часто использую для рекламы в Яндекс Директ и хочу сразу сказать, что модерацию он не всегда пройдет. Но скорее всего, если вы переадресовываете на качественную страницу приземления, в 90% случаев пройдет модерацию.
Зачем нам нужен скрипт редиректа на php?
Во-первых, если мы используем свой домен, и не копируем лендинг, а просто редиректим, то многое нам упрощает. Просто скачиваете данный скрипт, изменяете его и закачиваете на свой сервер, то сразу можете настраивать рекламную кампанию. При этом нам не нужно копировать лендинг, это важно для тех, кому трудно даются технические детали копирования страницы приземления.
Во-вторых, преимущества того, что мы используем свой домен, в том, что мы уменьшаем конкуренцию по показам. То есть, если мы взяли партнерскую ссылку и несколько партнеров рекламируют одну и ту же ссылку, то естественно все показы по ключу делятся на этих партнеров.
Затем мы можем установить внутри этого кода счетчики (ЯМ и GA). С помощью счетчиков мы можем использовать ретаргетинг в Директе. Там есть такое свойство, посетил страницу, соответственно можно настроить кампанию в РСЯ для тех, кто посетил данную страницу. Как вам известно люди, которые уже знакомы с коммерческой информацией намного лучше конвертируются в покупателей. Единственный нюанс при работе с ретаргетингом нужно помнить, что аудитория со временем выдыхается. Поэтому нужно постоянно лить трафик, чтобы были посетители, чтобы дальше работать с ретаргетингом.
Ну естественно можно сделать и ремаркетинг для адВордс. Только хочу сказать, что вот этот простой редирект не пройдет. Нужно будет копировать страницу приземления, и то возможно страница приземления не пройдет модерацию, потому что в гугл очень щепетильно относиться к уникальному контенту. Зато список ремаркетинга все равно можно будет использовать, который мы собираем, например, для другой рекламной кампании.
Что нам необходимо сделать, чтобы настроить редирект?
Нужно перейти по ссылке. Вы увидите файл в облаке майл ру. Скачайте файл на компьютер, распакуйте. Есть такой нюанс, скрипт написан на языке php, поэтому хостинг должен его поддерживать. Если у вас html хостинг, то данный скрипт не будет работать, нужно использовать скрипт написанный на javascript.
В распакованный скрипт нужно внести обязательные изменения: внести вашу партнерскую ссылку и код Яндекс Метрики. Есть необязательные изменения это тайтл и иконка фавикон, вы можете данные строчки удалить, если не хотите их применять.
Затем закачать измененный файл на ваш домен и можете настраивать рекламную каманию на него. Для рекламы данной страницы нужно использовать utm метки, чтобы отследить эффективность наших ключей и объявлений. Если ключей более 5 уже возникает трудность отследить эффективность, нам помогут в этом метки.
Перейдем в сам скрипт редиректа на php
Скрипт выглядит следующим образом. Наверху написана подсказка. Внимательно ее прочитайте перед использованием. Где написано в верхнем регистре нужно изменить.
[syntax type=»php»]<?
/*
* Денис Герасимов https://rek9.ru/
* Данный скрипт редиректа берет параметры из адресной строки и передает их в партнерскую сеть. Конкретно данный пример передает данные о номере объявления и данные о номере поисковой фразы
* ссылка на редирект должна содержать utm метки vasha-posadochnay-stranica-s-redirectom/?utm_source=yandexDirect&utm_medium=cpc&utm_term={phrase_id}&utm_content={ad_id}&utm_campaign=campaign
* Измените в данном скрипте:
* 1. Ссылку на поток — Пример взят из партнерки ad1.ru (https://rek9.ru/ad1) где subid передаются через двоеточие, вы можете легко изменить ссылку на любую другую нужно знать параметры передачи subid, например, так http://ssilka-na-potok.ru/?subid1=$content&subid2=$term
* 2.
* 3. Ссылку на иконку (можно просто удалить)
* 4. Вставьте ваш код метрики
* 5. Используйте utm метки для рекламы данной посадочной страницы
*/
?>
<html>
<head>
<meta charset=»UTF-8″ />
<?php
$source = $_REQUEST[‘utm_source’];
$compaing = $_REQUEST[‘utm_campaign’];
$content = $_REQUEST[‘utm_content’];
$term = $_REQUEST[‘utm_term’];
$url = «http://SSILKA-NA-POTOK/$content:$term»;
?>
<meta http-equiv=»refresh» content=»0.5; url=<?=$url; ?>» />
<title>ВАШ-ТАЙТЛ</title>
<link rel=»shortcut icon» href=»http://SSILKA-NA-IKONKU/favicon.ico» type=»image/x-icon»>
<body>
<!— код метрики —>ВАШ-КОД-МЕТРИКИ
</body>
</html>[/syntax]
Перед началом использования у вас должна естественно быть ссылка на рекламируемую страницу, без нее никак. Редирект выполняет роль прелендинга, с помощью которого заходим в выдачу Яндекса. Наш домен виден, но в итоге он все равно переадресует на другую страницу. Наша страница не продает, она выполняет роль посредника. Поэтому вам нужно взять партнерскую ссылку, я сделал данный скрипт на примере партнерки ad1.ru. Зарегистрируйтесь по данной ссылке, затем создайте поток на ваш оффер.
[button url=»https://rek9.ru/ad1″ class=»btn btn-danger» target=»_blank»]Зарегистрироваться в ad1[/button]
В ссылке внутри скрипта мы передаем subid– параметры нашего объявления и параметры нашего ключа. Таким образом, мы в аккаунте ad1 можем видеть по какому ключу и по какому объявлению была совершена конверсия. Эти данные нам помогут анализировать ситуацию. Мы можем понять, что нам необходимо делать, например, увеличить ставку по ключу или изменить объявление, а также отключать ключевые слова.
Смотрите, скрипт начинается отсюда. И написано, что необходимо взять из адресной строки параметр utm_source, utm_campaign, utm_content. На самом деле, utm_source и utm_campaign нам не нужны для передачи в ad1, потому что мы скорее всего будем знать, что у нас за кампания.
Здесь необходимо изменить ссылку на поток, причем она должна начинаться с http или https, потому что это важно. Слеш закрываете и вставляете вашу ссылку. А вот эти параметры уже передаются. В подсказке написано, если вы работаете с другой партнерской программой, то вам нужно привести конструкцию к другому виду.
Например, использовать вот такие макросы для передачи subid. Внимательно почитайте подсказку. Скорее раз вы смотрите данное видео, вам скорее всего редирект нужен, и вы будете использовать его и понимаете, о чем я говорю.
Наша ссылка записалась в переменную url и вот здесь вставляется. Здесь ничего менять не надо. Единственное, что вы можете изменить, это следующий параметр 0.5 Он обозначает, перезагрузить страницу через полсекунды. Если вы напишите единицу, то перезагрузка осуществиться через 1 секунду.
Потом вы можете изменить ваш тайтл. Тайтл необязательный параметр. Я его обычно прописываю, чтобы посетитель, когда кликнул по рекламе уже видел название страницы, пока происходит перезагрузка.
Также вы можете использовать иконочку – фавикон, если у вас ее нет, то просто удалите данную ссылку. Иконка позволяет показывать в Яндекс Директе рядом с нашим объявлением маленький значок, который незначительно, но повышает CTR.
Самое главное, поставить вот сюда ваш код Метрики между тегами body. Body открывается body закрывается. Я последнее время использую Google Tag. Внутри этого тега можно поместить разные счетчики метрики. Советую использовать асинхронные, которые не влияют на скорость загрузки ваше страницы, иначе редирект не произойдет, пока не загрузятся все эти коды метрики. Скорее всего я про Google Tag Manager запишу отдельное видео как его использовать, как его настраивать, очень интересная штука.
Когда метрики установили Яндекс Метрику и Google Analytics или тот же Google Tag Manager вы загружаете данный скрипт уже на сервер. И уже можете составлять рекламную кампанию.
Используем utm
[alert style=»green»]Использование utm меток поможет нам отследить наиболее эффективные ключевые слова и объявления, которые при меньших затратах приносят больше всего конверсий[/alert]
Допустим, у меня есть такая ссылка. Важно использовать utm метки. Сейчас ее скопирую. Здесь есть конструкция, которая вам может пригодиться. И вы уже данную конструкцию добавляете к вашей ссылке, когда создаете рекламную кампанию в Яндекс Директ.
[syntax type=»html»]?utm_source=yandexDirect&utm_medium=cpc&utm_term={phrase_id}&utm_content={ad_id}&utm_campaign=campaign[/syntax]
utm_source это источник трафика, я пишу yandexDirect можете писать yandex. В принципе, после знака равно и до знака аперсанда можете писать что угодно, главное, чтобы конструкция была правильная utm_source= utm_medium=
Utm_medium обозначает, что у нас данный источник трафик платный, причем cpcсокращение, обозначает с оплатой за клики.
В utm_content подставляется номер нашего объявления. В utm_campaign можете написать, как ваша кампания называется. Причем, рекомендую использовать латинские буквы, чтобы не возникало разных конфликтов. Обычно в Директе по умолчанию кампания называется новая.
Таким образом, у нас получается длинная ссылка с реферальным хвостом. Ее копируем и уже ее используем.
Дело в том, что у меня не установлен локальный сервер на компьютере. Все равно скрипт обработается. Вот смотрите я сейчас вставлю ссылку и произойдет переадресация. То есть скрипт основан на html, но мы используем phpдля подстановки параметров. Ровно через полсекунды происходит переадресация. Если вы на сервер закачаете, то все будет корректно работать.
Таким образом, можете использовать данный скрипт, и он очень помогает для создания рекламных кампаний. И вы можете так же отслеживать эффективность ключевых слов и ваших объявлений. Так что пользуйтесь на здоровье.
Всего доброго увидимся в следующих видео.
↓ Презентация cloud.mail.ru
↓ Скрипт cloud.mail.ru
Применение Google Apps Script в фишинге
Чтобы выманить у сотрудников компаний учетные данные от корпоративной почты, злоумышленникам в первую очередь нужно обмануть антифишинговые решения на почтовых серверах. Нередко для этого они пытаются использовать легитимные веб-сервисы: те, как правило, имеют заслуживающую доверия репутацию и не вызывают подозрений у почтовых фильтров.
Что такое Apps Script и как его используют злоумышленники
Apps Script — скриптовая платформа Google, построенная на базе Java Script. По задумке авторов, она служит для автоматизации задач как в продуктах компании (например, аддонов для Google Docs), так и в сторонних приложениях. По большому счету, это сервис, позволяющий создавать скрипты и исполнять их в инфраструктуре Google.
В почтовом фишинге этот сервис используют, по сути, для редиректа. Вместо того, чтобы вставлять непосредственно URL вредоносного сайта, злоумышленники зашивают в текст ссылку на скрипт. Таким образом они решают сразу несколько задач:
- Для антифишингового решения на почтовом сервере письмо выглядит как нормальное послание с гиперссылкой на легитимный сайт Google с нормальной репутацией.
- Такая схема позволяет эксплуатировать фишинговый сайт дольше, поскольку его URL не светится в письмах, а следовательно, не виден большей части защитных решений.
- Схема получает определенную гибкость — при необходимости скрипт можно поменять (на случай, если сайт все-таки будет забанен вендорами защитных решений), а кроме того, скрипт позволяет экспериментировать с доставкой контента (например, посылать жертву на разные языковые варианты сайта в зависимости от региона).
Пример использования уловки с Google Apps Script
Все, что нужно злоумышленникам — заставить пользователя кликнуть по ссылке. В последнее время чаще всего в качестве повода используют «переполнение почтового ящика». В теории выглядит логично — место, отведенное под почтовый ящик жертвы, закончилось, и нужно либо удалять старые письма, либо запрашивать расширение квоты.
Типичное фишинговое письмо, использующее уловку с переполненным ящиком
На практике злоумышленники чаще всего действуют достаточно небрежно и оставляют явные признаки мошенничества, которые легко может заметить даже человек, не знакомый с реальным форматом нотификаций от почтового клиента:
- Письмо пришло вроде бы от Microsoft Outlook, однако почтовый адрес отправителя имеет какой-то совершенно посторонний домен. В легитимном письме так не бывает — нотификация о переполнении ящика приходит от сервера exchange, работающего в инфраструктуре вашей компании. Плюс, если приглядеться, то заметно, что имя отправителя Microsoft Outlook написано без пробела и с символом 0 вместо буквы O.
- Самое главное: если подвести мышку к ссылке Fix this in storage settings, то вы увидите реальный адрес:
Ссылка на Google Apps Script в письме
Легитимных причин, почему из нотификации от почтового клиента Microsoft нужно переходить на сайт Google — нет. Да и вообще из какого бы то ни было письма. Единственная причина — попытка фишинга.
- В глаза бросается красная шкала — ваш почтовый ящик внезапно превысил лимит на 850 мегабайт. Так не бывает – Outlook начинает предупреждать о том, что место заканчивается, задолго до достижения лимита. То есть чтобы внезапно превысить его настолько, нужно получить примерно гигабайт спама. Это крайне маловероятно. На всякий случай — легитимная нотификация Outlook выглядит вот так:
Легитимная нотификация о скором переполнении почтового ящика
- Если вы все-таки ткнули на Fix this in storage settings, то скрипт перенаправит вас на фишинговый сайт. В данном случае он является достаточно убедительной копией страницы логина от веб-интерфейса Outlook. Однако следует обратить внимание на адресную строку браузера — хостится она не в инфраструктуре жертвы, а, как обычно, на «левом» сайте.
Как не попасться на крючок
Как показывает практика, злоумышленники могут прислать фишинговое письмо, в котором не будет как таковой фишинговой ссылки. Поэтому для надежной защиты от уловок мошенников необходимо иметь антифишинговое решение и на уровне почтового сервера, и на компьютерах пользователей.
Кроме того, имеет смысл поддерживать уровень осведомленности сотрудников о современных киберугрозах и фишинговых уловках при помощи онлайновых тренингов.
Советы
Продавцы воздуха в онлайн-магазинах
Рассказываем, как мошенники обманывают пользователей известного маркетплейса с помощью поддельной страницы оплаты товара.
Подпишитесь на нашу еженедельную рассылку
- Email*
- *
- Я согласен(а) предоставить мой адрес электронной почты АО “Лаборатория Касперского“, чтобы получать уведомления о новых публикациях на сайте. Я могу отозвать свое согласие в любое время, нажав на кнопку “отписаться” в конце любого из писем, отправленных мне по вышеуказанным причинам.
301 редирект – как сделать перенаправление с одной страницы на другую
Если бы в мире SEO был собственный «ад Данте», на последнем его кругу, вмёрзшими в ледяное озеро, томились бы оптимизаторы, плодящие дубли на сайтах. Это «грех» в SEO входит в число самых тяжёлых. Все усилия по продвижению страницы «канут в Лету», если в индексе поисковика присутствует её дубликат.
Эффективным инструментом борьбы с дублями является 301 редирект. Статья расскажет, как проверить 301 редирект и какими способами его можно настроить на сайте.
Что представляет собой 301 редирект
301 редирект — постоянное перенаправление с одной страницы на другую. За счёт 301 редиректа мы сообщаем поисковику, что рабочую страницу необходимо проиндексировать, а перенаправляемую — выбросить из индекса.
Типичный пример использования 301 редиректа — перенаправление HTTP-страницы на HTTPS. Попробуйте сами: вбейте в адресную строку браузера http://www.web-dius.ru. Если не станете отводить глаз от адресной строки, обнаружите, что некоторое время (буквально долю секунды) браузер будет пребывать в замешательстве, потом выдаст страницу https://www.web-dius.ru — не ту, которую вы хотели получить, а ту, которую мы захотели показать. «Правильную», с защищённым протоколом.
Что происходит во время перенаправления и почему браузер оказывается в замешательстве? Происходит своего рода диалог между сайтом и браузером. Сайт посредством 301 редиректа сообщает браузеру:
Страница X перемещена навсегда! Не надо больше её показывать. Лучше покажи человеку страницу Y.
Браузер отвечает:
Нет проблем! Тогда я действительно лучше покажу страницу Y.
Поскольку сайт и браузер «сговорились», у пользователя нет шансов увидеть «спрятанную» страницу X, пока редирект с неё не удалят.
Не стоит злоупотреблять 301 редиректами и ставить их без необходимости. Помните: страничка через редирект загружается дольше, чем без редиректа. Долгое время загрузки веб-страницы — отрицательный фактор ранжирования для поисковых систем.
Когда используется 301 редирект
Один пример использования 301 редиректов уже рассмотрели — когда происходит склейка при переезде на SSL-сертификат. Постоянное перенаправление настраивается и в иных случаях:
- Когда перерабатывается структура URL-адресов. URL-адрес рекомендуется выстраивать таким образом, чтобы он отражал путь до страницы в рамках сайта и был ЧПУ (человеко-понятным). Однако на некоторых сайтах можно встретить подобные адреса: https://habr.com/ru/post/541632/. Если захотите поменять такой адрес на ЧПУ — с использованием слов на транслите — придётся обращаться к 301 редиректу.
- Если дубли возникают стихийно. Увы, у некоторых CMS есть склонность самостоятельно плодить дубликаты страниц с параметрами на конце URL. От таких дублей SEO-шнику тоже приходится избавляться посредством перенаправления. Хотя это — «борьба с ветряными мельницами», пока не отыщешь и не устранишь изъян в «движке».
- При переносе разделов на поддомены. Есть гипотеза, что блог при коммерческом сайте выше котируется у поисковиков, если находится на поддомене. Если задумаете перенести «информационку» на поддомен, не обойтись без 301 редиректов.
- Если нужно просто удалить страницу. Когда может понадобиться? Когда информация на странице устарела. Скажем, вы продаёте онлайн-кассы, и одна страни чка на сайте посвящена кассам для ЕНВД. Вряд ли есть смысл сохранять эту страницу в 2021 году — ЕНВД отменён. Предвосхищая ваше возражение, отметим, что сберечь вес этой страницы, перенаправив её, например, на страницу, предлагающую кассы для патентной системы налогообложения, не получится — поисковая система не дурак. От неактуальной страницы избавляемся, перенаправляя на 404.
Ну и, конечно, 301 редирект необходим для настройки главного зеркала сайта. Скажем, если главное зеркало — без www, придётся установить редирект с www-страницы (www.site.ru → site.ru). Если наоборот — сделать редирект на www-страницу (site.ru → www.site.ru). Также нужно настроить перенаправление со страницы /index.php на главную (site.ru/index.php → site.ru) и выбрать, оставить ли главное зеркало со слэшем на конце (site.ru → site.ru/) или без (site.ru/ → site.ru). Задача сводится к следующему: посредством редиректов добиться, чтобы в индексе не было двух версий главной страницы сайта.
Виды редиректов
301 редирект — наиболее распространённый, но не единственный. Есть редиректы и других видов:
- 302 — является временным в отличие от 301 (который постоянный). 302 редирект даёт поисковой машине сигнал, что на странице-доноре пока не стоит «ставить крест». Обе страницы присутствуют в индексе, передачи веса и внутренних метрик страницы-донора не происходит.
- 307 — тоже временный. Используется крайне редко и только когда контент «переезжает» на непродолжительное время — например, на время техобслуживания сайта.
- Meta Refresh — отложенный редирект, который происходит не на уровне сервера, а непосредственно на сайте. Отложенный — значит, перенаправление осуществляется только спустя несколько секунд. Пользователь в течение этих секунд обычно видит текст наподобие такого:
Если переход не произошёл через n секунд, нажмите здесь
Вы точно могли видеть редирект типа Meta Refresh, если пользовались антиплагиатом Text.ru. Когда пытаешься пройти по ссылке на страницу, с контентом которой сервис нашёл совпадения, видишь такую картину:
Text.ru использует редирект типа meta refresh
Перенаправление происходит спустя 20 секунд.
Редирект Meta Refresh — не есть хорошо для SEO. Google прямо говорит, что такая практика противоречит правилам поисковой системы.
- Rel=»canonical». Вообще тег каноникал не является редиректом, поскольку перенаправления не происходит. Пользователь видит страницу с дублирующимся контентом, хотя в индексе она не находится. Тег каноникал служит для передачи веса и накопленных характеристик со второстепенной страницы на главную. Обычно rel=»canonical» ставят на страницы пагинации. Роль главной играет первая страница в каталоге, остальные лишь «сливают» ей свой вес.
В 90% случаев SEO-специалистами используется 301 редирект.
Где настраивается 301 редирект
Как правило, ломать голову или писать код для установки редиректа необходимости нет. Большинство известных CMS (например, Bitrix) позволяют сделать перенаправление за счёт встроенного инструментария. WordPress отличился не с лучшей стороны — на «движке» по умолчанию нет функционала для простановки редиректа. Приходится скачивать и ставить плагины для настройки 301 редиректа — например, Redirection.
Ещё один распространённый способ — сделать редирект через htaccess. Htaccess —конфигурационный файл веб-сервера Apache. Вы почти наверняка найдёте его в корня сайта через панель управления хостинга. Ну а если не найдёте — просто создайте при помощи блокнота.
Файл htaccess в файловом менеджере хостинга Timeweb
Ниже — фрагменты кода для установки самых популярных редиректов в htaccess.
Перенаправить с одной страницы на другую:
Перенаправить весь сайт с http на https:
Создавать редирект можно лишь после установки защищённого сертификата.
Постраничный редирект 301:
Постраничный редирект пригодится, если, например, нужно сделать перенаправление со всех страниц, кроме одной.
Редирект в htaccess с www на без www:
С «без www» на «с www»:
Редирект на главную с /index.php:
В примерах вместо site.com нужно вставить адрес продвигаемого сайта.
Настройка 301 редиректа для кириллического домена — более сложная задача. Такой домен нельзя вставлять в код редиректа в формате по умолчанию. Необходимо перевести запись домена в формат Punycode с помощью любого конвертера — скажем, 2ip. После конвертации запись выглядит примерно так: xn—80aswg.xn—p1ai (исходник — сайт.рф).
Другие способы создания переадресации 301
Есть уйма других способов сделать 301 редирект:
- Через PHP. Настроенный через PHP 301 редирект работает на уровне сервера. Он медленнее перенаправления через htaccess. Однако в частных случаях удобнее — например, когда необходимо прописать редиректы на десятках страниц. Настраивается в файле index.php, размещённый там, где htaccess.
- Через мета-тег в HTML. Можно настроить в HTML 301 редирект типа meta refresh. Нужно внести в код HTML скрипт редиректа:
Обратите внимание на цифру 10. Это длительность задержки перед редиректом в секундах. Если поставить 0, перенаправление будет немедленным.
- Редирект в Nginx. Если используете не Apache, а сервер типа Nginx, роль файла htaccess играет nginx. config. В нём нужно прописывать редирект. Код добавляется в секцию server.
- Через JavaScript. JavaScript, как HTML-тег meta refresh, используется для настройки отложенных редиректов. У метода с использованием JSP есть критический недостаток: если пользователь отключил в браузере JavaScript, перенаправления не будет.
- ASP.NET-редирект. Добавляется путём внесения кода в файл web.config, который можно найти в корне сайта.
Автоматическое создание переадресации
Если выше вы не нашли кода, который нужен конкретно в вашей ситуации, можете сгенерировать сами. Используйте один из онлайн-сервисов:
- Сервис Rapidtables. Позволяет генерировать код для редиректов типов JSP, PHP, HTML, ASP.NET, Apache (для htaccess). Из минусов — нет шаблонов для распространённых случаев (например, для перевода сайта на HTTPS).
- Генератор от BeamUsUp. Удобная прога с большим количеством шаблонов. Из минусов — создаёт коды для редиректов только в htaccess и не переведена на русский.
- Сервис Aleyda Solis. Набор инструментов от самой известной представительницы прекрасного пола в мире SEO. Абсолютный аналог генератора BeamUsUp.
- Инструмент Seo-Zona. Делает коды редиректов для PHP, HTML, JavaScript, ASP.NET, Apache. Шаблонов нет, и это плохо — генерировать код для массовых редиректов проблематично.
- Сервис Iksweb. Функциональный инструмент для создания htaccess-файла на русском языке.
Если ваша ситуация стандартна — например, когда хотите сделать код для редиректа страницы с www на страницу без www — воспользуйтесь программами BeamUsUp или Алейды Солис. Когда собираетесь сделать редирект не через htaccess, применяйте сервисы Rapidtables и Seo-Zona. А вот если серверы вашего сайта на Nginx, вы можете воспользоваться этим конвертером, чтобы преобразовать коды перенаправлений для htaccess в редиректы для nginx.config.
Как проверить 301 редирект
Проверку редиректа 301 легко выполнить вручную — просто попытавшись перейти на страницу, которая перенаправляет. Для пущей уверенности можно использовать специальные сервисы:
- Redirect Checker.
- PR-CY Info.
- Bertal.
Рекомендуем последний, он самый информативный. Показывает, в частности, тип сервера, на котором лежит сайт.
Перечисленные сервисы не подойдут для массовой проверки URL-адресов. Справиться с этой задачей поможет инструмент Internet Marketing Ninjas. За раз можно проверить до 1000 урлов. Хотя «трушные» SEO-шники, конечно, используют для этой цели Screaming Frog SEO Spider. Достаточно упорядочить по убыванию данные по колонке Status Code — и все страницы с редиректами окажутся вверху таблицы.
Screaming Frog SEO Spider
Ошибки, которых следует избегать при настройке редиректа 301
Первое и самое важное — избегайте цепочек редиректов. Цепочка редиректов (множественные редиректы) — ситуация, когда страница А перенаправляет на страницу Б, которая в свою очередь перенаправляет на страницу В. Это плохо по ряду причин:
- Множественные редиректы «пожирают» краулинговый бюджет поисковой системы.
- Конечная страница из-за нескольких перенаправлений загружается долго.
- При редиректе передаётся не весь PageRank, а только часть. Это подтвердил Джон Мюллер из Google. Сколько PageRank останется, когда дело дойдёт до конечной страницы при цепочке редиректов? Можно предположить, что немного.
Еще одна типичная ошибка при простановке редиректа — перенаправление на страницу с нерелевантным контентом. Например, когда страница продавала онлайн-кассы, а мы сделали с неё редирект на страницу, продающую банковские пин-пады. Это чистой воды «читерство», которое поисковая система, естественно, распознаёт и не прощает.
Заключение
Редирект 301 сейчас — настолько популярный инструмент, что появилось даже специальное направление SEO-деятельности «продвижение 301 редиректами». Это когда отыскиваешь домены, которые по тематике близки продвигаемому сайту, покупаешь их и с них проставляешь редиректы.
Поручиться за эффективность такого метода мы не можем. Считайте нас ретроградами, но мы рекомендуем десять раз подумать, прежде чем сделать редирект. Поисковые системы очень тяжело «переваривают» 301 редиректы. По словам Джона Мюллера, поисковику может потребоваться до 1 года, чтобы полностью распознать перемещение страницы и перераспределить вес.
Как перенаправить вывод команды оболочки
Опубликовано: 21 апреля 2022 г. | | на Роберто Нодзаки (Судоер, Red Hat)
Изображение
Фото Исаке Перейра из Pexels
Сценарии оболочкипредоставляют очень мощную функцию: возможность перенаправлять выходные данные команд и сценариев и отправлять их в файлы, устройства или даже в качестве входных данных для других команд или сценариев.
В этой статье основное внимание уделяется выводу команд и сценариев.
Типы вывода
Команды и сценарии в оболочке могут генерировать два основных типа вывода:
- STDOUT: Обычный вывод из команды/скрипта (файловый дескриптор 1)
- STDERR: Вывод ошибки команды/скрипта (файловый дескриптор 2)
По умолчанию STDOUT и STDERR отправляются на экран вашего терминала.
Что касается ввода, STDIN по умолчанию считывает ввод с клавиатуры (файловый дескриптор 0). Файловый дескриптор — это уникальный идентификатор файла или другого ресурса ввода-вывода.
Как перенаправить вывод оболочки
Существует несколько способов перенаправления вывода сценариев и команд оболочки.
1. Перенаправить STDOUT
В следующих примерах я буду использовать этот простой набор файлов:
$ls -la файл* -rw-r--r--. 1 admin2 admin2 7 27 мар 15:34 file1.txt -rw-r--r--. 1 admin2 admin2 10 мар 27 15:34 file2.txt -rw-r--r--. 1 admin2 admin2 13 27 марта 15:34 file3.txt
Я запускаю простые команды ls
, чтобы проиллюстрировать STDOUT и STDERR, но тот же принцип применим к большинству команд, которые вы выполняете из оболочки.
Я могу перенаправить стандартный вывод в файл, используя ls file* > my_stdout.txt
:
$ls file* > my_stdout.txt $ кошка my_stdout.txt файл1. txt файл2.txt file3.txt
Затем я запускаю аналогичную команду, но с 1
перед >
. Перенаправление с использованием сигнала >
аналогично использованию 1>
для этого: я говорю оболочке перенаправить STDOUT на этот файл. Если я опускаю дескриптор файла, по умолчанию используется STDOUT. Я могу доказать это, запустив 9Команда 0047 sdiff для отображения вывода обеих команд рядом:
$ls file* 1> my_other_stdout.txt $sdiff my_stdout.txt my_other_stdout.txt файл1.txt файл1.txt файл2.txt файл2.txt file3.txt file3.txt
Как видите, оба вывода имеют одинаковое содержимое.
2. Перенаправление STDERR
Что особенного в STDERR? Для демонстрации я добавлю условие ошибки к предыдущему примеру с ls file* non-existing-file* > my_normal_output.txt
:
Вот результат:
Изображение
(Роберто Нодзаки, CC BY-SA 4.0)Вот некоторые наблюдения из приведенного выше теста:
- Вывод о существующих файлах правильно отправляется в целевой файл.
- На экран выводится сообщение об ошибке (которое отображается, когда я пытаюсь перечислить что-то несуществующее). Это место, где по умолчанию отправляются ошибки, если вы не перенаправите их.
[Загрузить шпаргалку по сценариям оболочки Bash. ]
Далее я перенаправляю вывод ошибки, явно ссылаясь на файловый дескриптор 2 с помощью ls file* non-existing-file* > my_normal_output.txt 2> my_error_output.txt:
Image
(Roberto Nozaki, CC BY-SA 4.0)В приведенном выше примере:
- Команда
ls
не отображает сообщение об ошибке на экране, как раньше. - Обычный вывод содержит то, что я ожидал.
- Сообщение об ошибке отправлено на
файл my_error_output.txt
.
3. Отправка STDOUT и STDERR в один и тот же файл
Другой распространенной ситуацией является отправка и STDOUT, и STDERR в один и тот же файл :
$ls file* non-existing-file* > my_consolidated_output. txt 2>&1 $ кошка my_consolidated_output.txt ls: невозможно получить доступ к «несуществующему файлу*»: нет такого файла или каталога файл1.txt файл2.txt file3.txt
В этом примере весь вывод (обычный и ошибочный) отправляется в один и тот же файл.
Конструкция 2>&1
означает « отправить STDERR в то же место, куда вы отправляете STDOUT «.
4. Перенаправить вывод, но добавить файл
Во всех предыдущих примерах всякий раз, когда я перенаправлял какой-либо вывод, я использовал один >
, что означает « отправить что-то в этот файл и запустить файл с нуля .» В результате, если целевой файл существует, он перезаписывается.
Если я хочу добавить в существующий файл, мне нужно использовать >>
. Если файл еще не существует, он будет создан:
$echo "Добавление материала в конец файла" >> my_output.txt $cat my_output.txt файл1.txt файл2.txt файл3.txt Добавление материала в конец файла
5.
Перенаправление в другой процесс или в никуда Приведенные выше примеры охватывают перенаправление вывода в файл, но вы также можете перенаправить вывод в другие процессы или dev/null
.
Отправка вывода другим процессам — одна из самых мощных функций оболочки. Для этой задачи используйте |
(труба) символ, который направляет вывод одной команды на ввод следующей команды:
ps -ef | хром | grep -v grep | туалет -л 21
В приведенном выше примере перечислены мои процессы, фильтруются все, содержащие строку chrome , игнорируется строка о моей команде grep
и подсчитываются полученные строки. Если я хочу отправить вывод в файл, я добавляю >
и имя файла в конец цепочки.
Наконец, вот пример, где я хочу игнорировать один из выходов, STDERR:
$tar cvf файл my_files.tar* больше-несуществующий* файл1.txt файл2.txt файл3.txt tar: more-non-existing*: Cannot stat: Нет такого файла или каталога tar: Выход со статусом сбоя из-за предыдущих ошибок
Поскольку команда tar
не нашла файлов с именами, начинающимися с more-non-existing
, в конце отображаются некоторые сообщения об ошибках.
Предположим, я создаю несколько сценариев и не забочусь о том, чтобы увидеть или зафиксировать эти ошибки (я знаю, что в реальной жизни вы должны предотвращать и обрабатывать ошибки, а не просто игнорировать их):
$tar cvf файл my_files.tar* больше-несуществующий* 2> /dev/null файл1.txt файл2.txt file3.txt
/dev/null
— это специальный файл устройства, похожий на «черную дыру»: то, что вы туда отправляете, просто исчезает.
[ Загрузите это руководство по установке приложений в Linux. ]
6. Использовать перенаправление в скрипте
Изображение
(Роберто Нодзаки, CC BY-SA 4.0)=== РЕЗЮМЕ ИССЛЕДОВАНИЯ хрома === Дата/время исполнения: 2022-03-25 18:05:50 Количество найденных процессов.: 5 PID: 1245475 1249558 1316941 1382460 1384452
Этот очень простой скрипт делает следующее:
- Строка 3: Выполняет команду в операционной системе и сохраняет в переменной DATE_TIME.
- Строка 6: Запускает команду
ps
и перенаправляет наgrep
и в файл.- Вместо отправки вывода в файл я мог бы отправить его в переменную (как в строке 3), но в этом случае я хочу запустить другие действия, используя тот же вывод, поэтому я его фиксирую. В более реалистичной ситуации наличие файла также может быть полезно во время разработки или устранения неполадок, чтобы мне было легче исследовать, что генерирует команда.
- Строка 8: Запускает дополнительные команды, перенаправляет выходные данные на
wc
и присваивает результат переменной. - Строка 9: использует
awk
для выбора только столбца 2 из вывода и сортирует его в порядке убывания (просто для добавления еще одного канала).
Подведение итогов
Это были некоторые примеры перенаправления STDOUT и STDERR. Собрав все это вместе, вы понимаете, насколько мощным может быть перенаправление. Объединяя отдельные команды в цепочки, управляя их выводом и используя результат в качестве ввода для следующей команды, вы можете выполнять задачи, которые в противном случае потребовали бы разработки сценария или программы. Вы также можете включить эту технику в другие сценарии, используя все в качестве строительных блоков.
Ознакомьтесь со статьями по теме Включить системного администратора
Изображение
Как получить доступ к терминалу Linux
Вы установили Linux; что теперь? Вот как получить доступ к консоли в текстовом режиме или с графическим интерфейсом.
Изображение
Что системные администраторы должны знать об использовании Bash
Вы вошли в Linux, что дальше? Вот как использовать Bash, интерпретатор командной строки на большинстве современных Linux-машин.
Изображение
Как использовать входные данные в сценариях оболочки
Используйте переменные и аргументы для изменения, улучшения и повторного использования ваших любимых сценариев оболочки.
Темы: Сертификация линукс Red Hat Enterprise Linux (RHEL) Карьера
Как перенаправить на другую веб-страницу с помощью JavaScript?
Посмотреть обсуждение
Улучшить статью
Сохранить статью
- Последнее обновление: 17 ноя, 2021
Посмотреть обсуждение
Улучшить статью
Сохранить статью
В этой статье мы узнаем, как перенаправить веб-страницу на другую с помощью Javascript, а также поймем ее реализацию на примерах.
Существует несколько способов перенаправления на другую веб-страницу с помощью JavaScript. Некоторые из них перечислены ниже:
- location.href : Используется для установки или возврата полного URL-адреса текущей страницы.
- местоположение.заменить() : Используется для замены текущего документа на указанный.
- location.assign() : Используется для загрузки нового документа.
Синтаксис:
location.href=" URL " или же location.replace (« URL-адрес ») или же location.assign(" URL ")
Параметры: Он принимает один параметр URL , который является обязательным. Он используется для указания ссылки на новую веб-страницу.
Возвращаемое значение: Нет возвращаемого значения.
Пример 1: В этом примере показано использование свойства location. href .
HTML
|
Выход:
Расположение.
HTML
92970047 |
Output:
location. replace
Example 3: This example использует метод location.assign() .
HTML
|
Выход:
место.0002 ПРИМЕЧАНИЕ: Вывод всех методов будет одинаковым, но метод location.replace() удаляет URL-адрес текущего документа из истории документа. Таким образом, хорошо использовать метод location.assign() , если вы хотите вернуться к исходному документу.
о перенаправлении - PowerShell | Microsoft Learn
- Статья
- 6 минут на чтение
Краткое описание
Объясняет, как перенаправить вывод из PowerShell в текстовые файлы.
Подробное описание
По умолчанию PowerShell отправляет вывод на узел PowerShell. Обычно это консольное приложение. Однако вы можете перенаправить вывод в текстовый файл, и вы может перенаправить вывод ошибок в обычный поток вывода.
Для перенаправления вывода можно использовать следующие методы:
Используйте командлет
Out-File
, который отправляет вывод команды в текстовый файл. Как правило, вы используете командлетOut-File
, когда вам нужно использовать его параметры, например, параметрыEncoding
,Force
,Width
илиNoClobber
.Используйте командлет
Tee-Object
, который отправляет выходные данные команды в текстовый файл и затем отправляет его в конвейер.Используйте операторы перенаправления PowerShell. Использование оператора перенаправления с файловая цель функционально эквивалентна передаче на
Out-File
без дополнительные параметры.
Дополнительные сведения о потоках см. about_Output_Streams.
Перенаправляемые потоки вывода
PowerShell поддерживает перенаправление следующих потоков вывода.
Поток # | Описание | Представлен в | Командлет записи |
---|---|---|---|
1 | Успех Поток | PowerShell 2.0 | Запись-вывод |
2 | Ошибка Поток | PowerShell 2.0 | Ошибка записи |
3 | Предупреждение Поток | PowerShell 3.0 | Предупреждение о записи |
4 | Многословный Поток | PowerShell 3. 0 | Подробная запись |
5 | Отладка Поток | PowerShell 3.0 | Запись-Отладка |
6 | Информация Поток | PowerShell 5.0 | Запись информации |
* | Все потоки | PowerShell 3.0 |
В PowerShell также есть поток Progress , но он не поддерживает перенаправление.
Important
Потоки Success и Error аналогичны потокам stdout и stderr потоки других оболочек. Однако стандартный ввод не подключен к PowerShell. трубопровод для ввода.
Операторы перенаправления PowerShell
Ниже перечислены операторы перенаправления PowerShell, где n
представляет
номер потока. Успех поток ( 1
) используется по умолчанию, если нет потока
указано.
Оператор | Описание | Синтаксис |
---|---|---|
> | Отправить указанный поток в файл. | п> |
>> | Добавить указанный поток в файл. | п>> |
>&1 | Перенаправляет указанный поток в поток Success . | n>&1 |
Примечание
В отличие от некоторых оболочек Unix, вы можете только перенаправлять другие потоки на Успех поток.
Примеры
Пример 1: перенаправление ошибок и вывод в файл
В этом примере выполняется dir
для одного элемента, который завершится успешно, и другого, для которого возникнет ошибка.
каталог 'C:\', 'fakepath' 2>&1 > .\dir.log
Он использует 2>&1
для перенаправления потока Error в поток Success и >
для отправки результирующего потока Success в файл с именем dir. log
Пример 2. Отправка всех данных потока Success в файл
В этом примере все данные потока Success отправляются в файл с именем script .лог
.
.\script.ps1 > script.log
Пример 3. Отправка потоков Success, Warning и Error в файл
В этом примере показано, как можно комбинировать операторы перенаправления для достижения желаемый результат.
&{ Пишите-Предупреждение "привет" Ошибка записи "привет" Запись-вывод "привет" } 3>&1 2>&1 > C:\Temp\redirection.log
-
3>&1
перенаправляет поток Warning в поток Success . -
2>&1
перенаправляет Error в поток Success (который также теперь включает все потоковые данные Warning ) -
>
перенаправляет поток Success (который теперь содержит как Warning и Error streams) в файл с именемC:\temp\redirection. log
)
Пример 4. Перенаправление всех потоков в файл
файл под названием script.log
.\script.ps1 *> script.log
Пример 5: подавление всех данных узла записи и информационного потока
В этом примере подавляются все данные информационного потока. Чтобы узнать больше о Информация командлетов потока, см. Write-Host и Запись информации
&{ Пишите-ведущему "Привет" Write-Information "Hello" -InformationAction Continue } 6> $нуль
Пример 6: Показать эффект настроек действия
Переменные и параметры настройки действия могут изменить то, что записывается в
конкретный поток. Сценарий в этом примере показывает, как значение $ErrorActionPreference
влияет на то, что записывается в поток Error .
$ErrorActionPreference = 'Продолжить' $ErrorActionPreference > log.txt get-item /not-here 2>&1 >> log.txt $ErrorActionPreference = 'Продолжить молча' $ErrorActionPreference >> log. txt get-item /not-here 2>&1 >> log.txt $ErrorActionPreference = 'Стоп' $ErrorActionPreference >> log.txt Пытаться { get-item /not-here 2>&1 >> log.txt } ловить { "`tError пойман!" >> log.txt } $ErrorActionPreference = 'Игнорировать' $ErrorActionPreference >> log.txt get-item /not-here 2>&1 >> log.txt $ErrorActionPreference = 'Запросить' $ErrorActionPreference >> log.txt get-item /not-here 2>&1 >> log.txt $ErrorActionPreference = 'Продолжить'
Когда мы запускаем этот сценарий, мы получаем запрос, когда $ErrorActionPreference
установлен на Запросить
.
PS C:\temp> .\test.ps1 Подтверждать Не удается найти путь «C:\not-here», так как он не существует. [Y] Да [A] Да для всех [H] Остановить команду [S] Приостановить [?] Справка (по умолчанию "Y"): H Get-Item: C:\temp\test.ps1:23 Линия | 23 | get-item /not-here 2>&1 >> log.txt | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | Выполняемая команда остановилась, так как пользователь выбрал опцию Stop.
При просмотре файла журнала мы видим следующее:
PS C:\temp> Get-Content .\log.txt Продолжать Get-Item: C:\temp\test.ps1:3 Линия | 3 | get-item /not-here 2>&1 >> log.txt | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | Не удается найти путь «C:\not-here», так как он не существует. МолчаПродолжить Останавливаться Ошибка поймана! Игнорировать Запрос
Примечания
Операторы перенаправления, которые не добавляют данные ( >
и n>
), перезаписывают
текущее содержимое указанного файла без предупреждения.
Однако, если файл доступен только для чтения, скрытый или системный, перенаправление терпит неудачу . Операторы перенаправления добавления ( >>
и n>>
) не записывают в
файл только для чтения, но они добавляют содержимое в системный или скрытый файл.
Чтобы принудительно перенаправить содержимое в доступный только для чтения, скрытый или системный файл,
используйте командлет Out-File
с его параметром Force
.
При записи в файлы операторы перенаправления используют UTF8NoBOM
кодирование. Если файл имеет другую кодировку, вывод может быть не
отформатировано правильно. Для записи в файлы с другой кодировкой используйте Командлет Out-File
с параметром Encoding
.
Ширина вывода при записи в файл
При записи в файл с использованием либо Out-File
, либо перенаправления
операторы, PowerShell форматирует вывод таблицы в файл на основе ширины
консоль, в которой он работает. Например, при регистрации вывода таблицы
в файл с помощью команды типа Get-ChildItem Env:\Path > path.log
в системе
где ширина консоли установлена на 80 столбцов, вывод в файле
усечено до 80 символов:
Имя Значение ---- ----- Путь C:\Program Files\PowerShell\7;C:\WINDOWS…
Учитывая, что ширина консоли может быть установлена произвольно в системах, где ваш сценарий запущен, вы можете предпочесть, чтобы вывод таблицы формата PowerShell файлы на основе ширины, которую вы указываете вместо этого.
Командлет Out-File
предоставляет параметр Width , который позволяет установить
ширина, которую вы хотели бы для вывода таблицы. Вместо того, чтобы добавлять -Width 2000
везде, где вы вызываете Out-File
, вы можете использовать Переменная $PSDefaultParameterValues
, чтобы установить это значение для всех случаев использования Командлет Out-File
в сценарии. А поскольку операторы перенаправления ( >
и >>
) фактически являются псевдонимами для Out-File
, установка Out-File:Width
параметр для всего скрипта влияет на ширину форматирования для
также операторы перенаправления. Поместите следующую команду вверху вашего
скрипт для установки Out-File:Width
для всего скрипта:
$PSDefaultParameterValues['out-file:width'] = 2000
Увеличение ширины вывода увеличит потребление памяти при регистрации вывод в табличном формате. Если вы записываете много табличных данных в файл и вы знаете, что можете обойтись меньшей шириной, используйте меньшую ширину.
В некоторых случаях, например при выводе Get-Service
, чтобы использовать дополнительную ширину
вам нужно будет передать вывод через Format-Table -AutoSize
до
вывод в файл.
$PSDefaultParameterValues['out-file:width'] = 2000 Получить-Сервис | Формат-Таблица-Авторазмер> services.log
Дополнительные сведения о $PSDefaultParameterValues
см.
about_Preference_Variables.
Возможна путаница с операторами сравнения
Оператор >
не следует путать с
Сравнение больше чем
оператор (часто обозначается как >
в других языках программирования).
В зависимости от сравниваемых объектов вывод с использованием >
может показаться
правильно (потому что 36 не больше 42).
PS> if (36 > 42) { "true" } else { "false" } ЛОЖЬ
Однако при проверке локальной файловой системы можно увидеть, что файл с именем 42
был
письменный, с содержанием 36
.