php curl 301 moved permanently

Что такое 301 редирект и как его настроить

php curl 301 moved permanently. Смотреть фото php curl 301 moved permanently. Смотреть картинку php curl 301 moved permanently. Картинка про php curl 301 moved permanently. Фото php curl 301 moved permanently

При работе с веб-ресурсами возникают ситуации, когда происходит удаление, перенос или изменение url-адреса отдельных страниц или сайта целиком. При этом требуется сохранить индексацию в поисковых системах и перенаправить пользовательский трафик на новый адрес. Для решения этой задачи используется функция под названием 301 Redirect. Это один из инструментов SEO, который позволяет не только избежать ошибок при открытии отдельных страниц, но и добиться корректной работы ресурса. Правильные настройки редиректа дают дополнительную возможность получить синергетический эффект в поисковой оптимизации и увеличить количество органического трафика на релевантные страницы. Рассмотрим более подробно, как происходит настройка редиректа 301.

Что такое переадресация 301

Permanent Redirect 301 применяется с целью организации постоянной переадресации с неактуального доменного адреса или url отдельной страницы на рабочую версию. Редирект может понадобиться в связи с глобальным переносом сайта на другой домен, техническими изменениями в написании адреса, удалением страниц, необходимостью внутренней и внешней перелинковки. Один из вариантов использования перманентной переадресации – редирект с нескольких доменных имен, созданных в разных зонах, на один актуальный адрес. Грамотное использование редиректа позволяет перемещать контент без потерь в поисковой индексации, сохранить и даже увеличить прежний вес и позицию в выдаче.

Настроить код состояния HTTP 301 можно разными способами:

с помощью HTML и PHP;

через панель управления или плагины соответствующей CMS;

при помощи специальных скриптов (программ);

на уровне хостинг-провайдера;

Последний способ является наиболее простым и надежным. О нем чуть позже поговорим подробнее.

Альтернативные методы переадресации

В большинстве случаев постоянная переадресация является более правильным решением, чем временная. На практике это объясняется просто. Предположим, сайт сменил доменную зону, а затем еще и обзавелся защищенным протоколом https. При настройке временной переадресации в индексе Яндекса и Google по одним и тем же запросам появились три версии сайта с пропорциональным проседанием позиций в выдаче. После настройки редиректа 301 на приоритетный url произошло склеивание дублей, робот вернул сайт в топ выдачи.

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

php curl 301 moved permanently. Смотреть фото php curl 301 moved permanently. Смотреть картинку php curl 301 moved permanently. Картинка про php curl 301 moved permanently. Фото php curl 301 moved permanently

В каких случаях используется постоянный редирект 301

Смена доменного имени, перенос сайта. Необходимо произвести тотальную настройку переадресации со старого адреса на новый, чтобы все без исключения запросы к old_site.ru перенаправлялись на new_site.ru.

Изменение написания url определенных страниц в целях SEO-продвижения, смены CMS или по иным причинам. Требуется настроить редирект с site.ru/1hdkr5 на site.ru/page_adress.

Перенос разделов на субдомены. Необходимо сменить адрес www.site.ru/example на example.site.ru.

Для аккумуляции трафика с адресов, купленных в разных доменных зонах, на один приоритетный ресурс.

Исключение дублирующихся страниц из индекса.

Склейка зеркал сайта – вариантов сайта с идентичным контентом, но разным написанием адресов: site.ru, www.site.ru, https://site1.ru и т.д. В этом случае выбирается один приоритетный домен и на него настраивается редирект со всех остальных зеркал.

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

Для быстрого перехода пользователя на мобильную версию ресурса со смартфонов и планшетных устройств.

Создание постоянной переадресации 301 через настройки и плагины CMS

В большинстве популярных конструкторов сайтов и CMS (OpenCart, Joomla!, Битрикс, Wix, Тильда) предусмотрена настройка редиректов с помощью встроенных инструментов. Если сайт создан с помощью WordPress, для настройки переадресации можно воспользоваться следующими плагинами:

Redirection — самый популярный плагин для настройки редиректов. Кроме основной функции обладает следующими возможностями: сбором статистики переадресаций, отслеживанием ошибок 404, поддержкой регулярных выражений.

Safe Redirect Manager — простой плагин, который также поддерживает регулярные выражения, практически не влияет на производительность сайта.

Quick Page/Post Redirect Plugin — еще один удобный инструмент оптимизации. Один из недостатков — отсутствие поддержки регулярных выражений. К ссылкам можно добавлять атрибут «nofollow».

Simple 301 Redirects. Данный модуль обладает одним недостатком – url для переадресации необходимо прописывать вручную.

Для Битрикс кодировка будет выглядеть следующим образом:

В Joomla настройки переадресации производятся через панель администратора в разделе «Компоненты» => «Перенаправление». Здесь можно не только установить правила редиректа, но и отслеживать страницы с битыми ссылками и перенаправлять их на корректные адреса.

Но настроить редирект 301 довольно просто в базовом редакторе.

Найти файл можно через панель управления хостинга либо использовать FTP-клиент. При любом варианте нужно включить отображение скрытых файлов.

Для создания 301 редиректа перейдите в панель управления вашего сайта.

Рекомендуем все условия редирект записывать в блоке IfModule, дабы избежать ошибок при выполнении файла htaccess.

Перед тем как начать прописывать правила перенаправления, необходимо включить механизм преобразований (RewriteEngine) при помощи команды RewriteEngine On.

Хостинги применяют по умолчанию 302 или любой другой 3xx редирект. В связи с этим в правилах используются флаги. Рекомендуем дописывать в своих правилах [R=301,L].

Склейка зеркал сайта (www / без www)

Сайты http://name.site и http://www.name.site для поисковых систем являются разными. А по факту это разные адреса одного сайта.

Если произошла обратная ситуация и необходима переадресация с без «www» на «www», то в файл прописывается:

Редирект с http на https для всего сайта

Если данная конструкция не сработает, попробуйте другой вариант:

Если редирект не работает и в этом случае, попробуйте такой вариант:

В результате пройдет перенаправление на https всех пользователей и поисковых систем.

Постранично

Бывают случаи, когда необходимо создать редирект на https всех страниц, кроме одной. В этом случае используют постраничный редирект:

Для одной страницы

Для редиректа с http на https одной страницы (например page.php), в файл добавьте следующую конструкцию:

Редирект сайта с https на http

Если необходимо сделать 301 редирект всего сайта с https на http, в файл прописывается следующее:

Изменение домена

Редирект на страницу с другим url (без параметров)

Редирект для url (с параметрами)

Если адрес содержит параметр (например, http://name.site/articles.php?section=1, где параметром является «section=1» ), то прописывают следующую конструкцию:

Редирект с index.php на главную страницу

В тех случаях, когда главная страница сайта может быть недоступна по нескольким адресам одновременно, применяют следующую конструкцию:

Редирект со страниц со слешем на без слеша (для всего сайта)

Или более короткий вариант:

Редирект со страниц без слеша на слеш (для всего сайта)

Обратный вариант применяется, когда нужно использовать адреса со слешем.

301 редирект с 404 Not Found

Код 404 Not Found (страница не найдена) присваивается удаленной или несуществующей странице на сайте. Создание постоянного перенаправления с таких страниц актуально для контентных сайтов и крупных интернет-магазинов, где страницы часто удаляются по естественным причинам. Тогда возникает потребность перенаправить посетителей на одну из главных страниц сайта, чтобы они не уходили с ресурса при виде ошибки.

301 редирект для страниц 404 Not Found сделать совсем не сложно. Например, этот код перенаправит со всех 404-страниц на главную:

Однако делать такие редиректы в массовом порядке не рекомендуется, так как это может испортить SEO-статистику всего ресурса.

Пример файла htaccess, после добавления в него редиректов:

точка заменяет произвольный символ

обозначает перечень знаков, совпадающих с буквами a, b, или с

список символов вне указанного диапазона (кроме a, b, с)

указывает на то, что предыдущий знак может повторяться 0 или больше раз

команда найдет идущие подряд символы из заданного набора

приводит к противоположному эффекту

заменяет любой набор символов

ищет все подстроки между кавычками

начало строки (когда используется в начале выражения)

означает конец строки

цифра, буква или подчеркивание _

заменяет любую цифру

может заменить любой знак, кроме цифры

для замены любой цифры

для всех букв от a до z в нижнем регистре

для каждой буквы от A до Z в верхнем регистре

любая буква от a до Z во всех регистрах

Другие способы создания переадресации 301

Через PHP

Данный вариант подойдет тем, кто хорошо разбирается в web-программировании и PHP. Необходимо открыть файл index.php в корне CMS-движка и прописать там:

(в первой строке укажите старый url, а во второй — новый)

ASP-редирект

ASP.NET редирект

Найдите в корне своего сайта файл web.config и вставьте в секцию синтаксис:

ColdFusion редирект

JSP (Java) редирект

Данный способ подойдет для небольшой корректировки простых сайтов. Код можно прописать лишь в одном файле, а сам файл добавить на все нужные страницы, указав:

CGI-скрипт на PERL

Ruby on Rails

Редирект в Nginx

HTML-редирект

Этот способ подойдет для небольших статических сайтов, когда требуется настроить переадресацию для одной страницы. Для этого необходимо добавить специальный мета-тег внутри кода HTML. Пример записи редиректа на другой ресурс после 5-секундной задержки:

Если поставить значение 0 вместо 5, то переадресация на https://livepage.pro произойдет моментально.

Однако для больших сайтов HTML-перенаправление делать сложно и затратно по времени, поэтому лучше отдать предпочтение другому варианту.

Редирект 301 в панелях управления сервера

Большинство панелей управления сервера предоставляют возможность настройки переадресации с кодом 301. Рассмотрим варианты решения этой задачи на примере двух популярных ПУ для VDS.

Cpanel

Нужно перейти в блок «Домены» => «Перенаправления». В появившемся окне выполнить следующее:

В строке «Тип» выбрать «Постоянный 301».

В строке «https://www» из выпадающего списка выбрать домен сайта (например, example.ru).

В строке «Перенаправляет на» указать для домена адрес http://example.ru.

В блоке «Перенаправление www» поставить галочку напротив «Перенаправлять только с www».

Сохранить изменения кликом на «Добавить».

ISPmanager

Автоматическое создание переадресации

При отсутствии знаний и опыта самостоятельной настройки редиректа можно воспользоваться сервисами автоматической генерации:

Проверка корректности настроек 301 редиректа

Самый простой способ проверки переадресации – ручное тестирование. Для этого необходимо вставить в адресную строку браузера url сайта или страницы, с которой настроено перенаправление. Если при открытии будет доступен ресурс, на который настроен редирект, то переадресация выполняется правильно.

Для автоматической проверки можно воспользоваться специальными сервисами:

программой Screaming Frog Seo Spider, способной просканировать весь сайт.

Существует ряд ошибок, которые следует избегать при настройке редирект 301:

использование перенаправлений между страницами сайта без изменения их url в ссылках;

установка временной переадресации вместо постоянной;

неправильный выбор типа редиректа;

перенаправление файла robots.txt;

непонимание разницы между rel=canonical и кодом 301;

редирект на нерелевантный контент;

переадресация, которая не приводит к 200-й странице.

Стоит отметить проблему создания цепочки ссылок, которая может привести к появлению циклического редиректа — ошибки с кодом «ERR_TOO_MANY_REDIRECTS». Наиболее распространенные причины возникновения такого бага – неправильная настройка в процессе создания переадресации, вирусная атака, слишком длинная цепочка редиректов. Не рекомендуется настраивать редирект, содержащий более пяти адресов. Оптимальной является прямая переадресация со старого на новый url.

Заключение

Использование редиректа 301– очень важный способ поисковой и пользовательской оптимизации веб-ресурса. Использовать его следует с осторожностью. Неправильная настройка может привести к сбоям в работе сайта и потере поисковых позиций.

Источник

Утилита командной строки CURL

CURL — утилита командной строки для Linux или Windows, поддерживает работу с протоколами: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, POP3, IMAP и SMTP. Она отлично подходит для имитации действий пользователя на страницах сайтов и других операций с URL адресами. Поддержка CURL добавлена в множество различных языков программирования и платформ.

php curl 301 moved permanently. Смотреть фото php curl 301 moved permanently. Смотреть картинку php curl 301 moved permanently. Картинка про php curl 301 moved permanently. Фото php curl 301 moved permanently

Запускаем командную строку, переходим в директорию curl/bin и пытаемся скачать главную страницу Google:

Следовать за редиректами

Сохранить вывод в файл

Сохраняем страницу Google в файл google.html :

Сохраняем документ gettext.html в файл gettext.html :

Загрузить файл, только если он изменён

Прохождение аутентификации HTTP

Получение и отправка cookie

Cookie используются сайтами для хранения некой информации на стороне пользователя. Сервер сохраняет cookie на стороне клиента (т.е. в браузере), отправляя заголовки:

А браузер, в свою очередь, отправляет полученные cookie обратно на сервер при каждом запросе. Разумеется, тоже в заголовках:

Передать cookie на сервер, как будто они были ранее получены от сервера:

Чтобы сохранить полученные сookie в файл:

Затем можно отправить сохраненные в файле cookie обратно:

Файл cookie.txt имеет вид:

Получение и отправка заголовков

По умолчанию, заголовки ответа сервера не показываются. Но это можно исправить:

Если содержимое страницы не нужно, а интересны только заголовки (будет отправлен HEAD запрос):

А вот так можно отправить свой заголовок:

Отправка данных методом POST

Содержимое файла data.txt :

Пример URL-кодирования данных из файла перед отправкой POST-запроса:

Содержимое файла username.txt :

Загрузка файлов методом POST

Чтобы отправить на сервер данные такой формы:

Работа по протоколу FTP

Скачать файл с FTP-сервера:

Если заданный FTP путь является директорией, то по умолчанию будет выведен список файлов в ней:

Источник

301 moved permanently

Описание фильма :301 Moved Permanently

Не удалось найти видео.

P.S Логин и пасс сюда не ввел.
P.S.S тут чистый код

Помощь в написании контрольных, курсовых и дипломных работ здесь.

php curl 301 moved permanently. Смотреть фото php curl 301 moved permanently. Смотреть картинку php curl 301 moved permanently. Картинка про php curl 301 moved permanently. Фото php curl 301 moved permanentlyСервер выдает 301 Moved Permanently
Всем привет, передаю такой вот HTTP запрос: GET / HTTP/1.1\r\n Host: www.php.ru\r\n.

Не могу скачать файл с данного сервиса Файлы@Mail.ru, все время появляется ошибка: 301 Moved Permanently
Не могу скачать файл с данного сервиса Файлы@Mail.ru, все время появляется эта ошибка. Можно.

Авторизация HTTP/ Moved Permanently
procedure TForm1.Button1Click(Sender: TObject); var StrPage,ssylka:string; Log:TstringList;.

При заходе на сайты про майнкрафт выдает ошибку Moved Permanently
Помогите пожалуйста при заходе на сайты про майнкрафт выдает ошибку Moved Permanently The.

В строку поиска (которая в верхнем блоке) писал и адекватную и нет строку но 301 не встретил.

Если проблема все же осталась то наверное лучше решать с помощью переписке в каком либо из мессенджеров.

Решение

не правильная ссылка, если открыть ее в браузере (предварительно подставив номер) то получим переадресацю.

То о чем я изначально говорил.

Рекомендую немного оптимизировать код, например:

можно написать так:

Не работает по-моему ещё где-то надо исправить на 160 строке нашел поменял,не сработало

не правильная ссылка, если открыть ее в браузере (предварительно подставив номер) то получим переадресацю.

То о чем я изначально говорил.

можно написать так:

Заработало,только не все фильмы работают.И еще не мог бы ты помочь парсер с других обменников написать?У меня только вк

Все таки видать что не то, где то остался кэш, ведь если фильма нет на сайте то он и в поиске будет отсутствовать.

P. S. почему в качестве формата хранения данных не использовать сериализованный массив вместо XML?

Для полной уверенности предлогаю отключить кэширование и проверить без него.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

php curl 301 moved permanently. Смотреть фото php curl 301 moved permanently. Смотреть картинку php curl 301 moved permanently. Картинка про php curl 301 moved permanently. Фото php curl 301 moved permanentlyMoved Temporarily
Работаю с YouTube API.Получаю токен, отправляю видео и т.д. Все работает, но есть небольшая.

HTTP/1.0 302 Moved Temporarily
В Firemonkey Windows код работает, а вот под андроид нет 🙁 выводит HTTP/1.0 302 Moved Temporarily.

заклинило, bool->char, конструкция if(!moved)
в ардуине был тип bool переделываю в char, как правильно переделать if(!moved) для типа char.

Источник

Django returning HTTP 301?

I have a django view that returns HTTP 301 on a curl request:

I can’t get the page’s content from curl. However, if I visit the page with a browser, I see the content as expected.

php curl 301 moved permanently. Смотреть фото php curl 301 moved permanently. Смотреть картинку php curl 301 moved permanently. Картинка про php curl 301 moved permanently. Фото php curl 301 moved permanently

4 Answers 4

You are probably requesting the URL without a trailing slash, and have APPEND_SLASH set to True (the default) in settings.py, so Django is redirecting to the URL including a slash.

My problem was PREPEND_WWW, when using it in localhost it returns a 301 error, I just created a local settings file and set it PREPEND_WWW = False

In my case, commenting the SecurityMiddleware on the settings.py file did the trick. I have to say that this only happens when running the runserver command (aka. when testing). With Apache it doesn’t falls into the redirect loop.

php curl 301 moved permanently. Смотреть фото php curl 301 moved permanently. Смотреть картинку php curl 301 moved permanently. Картинка про php curl 301 moved permanently. Фото php curl 301 moved permanently

So for me, it was a combination of the following:

In that case, the web server already does the redirecting and forwards the request via HTTP to Django, which then redirects again to HTTPS which ends in an infinite loop.

Not the answer you’re looking for? Browse other questions tagged django curl libcurl or ask your own question.

Linked

Related

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.9.17.40238

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

Following redirects with Curl in PHP.

As a good web citizen, I try to always follow redirects. Not just in my browser, where I actually don’t have all that much control over things, but also a consumer of web services.

When doing requests with CURL, redirects are not followed by default.

Assuming the given url actually redirects like this:

Curl will automatically just stop. To make it follow redirects, the FOLLOWLOCATION setting is needed, as such:

CURLOPT_FOLLOWLOCATION will follow the redirects up to 5 times (by default).

This is also the default behavior for browsers, but actually non-conforming with the HTTP standard, and also not desirable for consumers of web services.

To fix this, all you have to do is use CURLOPT_CUSTOMREQUEST instead of CURLOPT_POST :

Streams

After doing this, the secondary request will be a POST request as well. There’s one more issue though, if you were doing a POST or a PUT request you probably had a request body attached.

There’s two ways to supply a request body, as a string or as a stream. If we were uploading a file it makes much more sense to use a stream, because it unlike posting a string, a stream doesn’t have to be kept in memory.

For example, this is how we could upload a large file using POST.

This will work great, unless the target location redirects. If it does, curl will throw the following error:

This seems to be related to PHP bug #47204.

Basically this means that you cannot use CURLOPT_INFILE and CURLOPT_FOLLOWLOCATION together. There’s two alternatives:

Strings

Using CURLOPT_POSTFIELDS you can supply a request body as a string. Lets try to upload our earlier failed request using that method:

This also will not work exactly as you expect. While the second request to /someredirect will still be a POST request, it will be sent with an empty request body.

To fix this, use the undocumented CURLOPT_POSTREDIR option.

According to the PHP changelog, this was added in PHP 5.3.2, and according to PHP bug #49571 there are four possible values:

Web mentions

Comments

MeadSteve • Jul 23, 2013

I guess when you get a 301/308 it’d normally be worth logging something as well, for the maintainer of the code to take some action. Versus a 302/307 where you’d be happy for the code to do this silently.

Ed Dikotope • Nov 19, 2013

Best answer to my problem over the entire internet. Thank you very much.

Tom Binga • Mar 20, 2014

You helped solved a problem that’s been holding me back for a week or so now. Thank you!

Marcos Saturno • Jun 03, 2014

I’m still having problems when trying to write onto web HDFS (hadoop) from a PHP script. If I make a PUT request passing CREATE as a parameter, it will provide me a 307 temporary redirect, so i’d need to make a second PUT request to the new URL provided. I’m not able to follow it or at least slipt the redirect URL from the HTTP Response. Could you please help me with it?

I’m using something like:

Marcos Saturno • Jun 03, 2014

*I commented the //CURLOPT_PUT, but also tested with both on. 😉

Does your request not have a body? I wonder if that messes things up. You may want to PUT an empty string instead of nothing at all, because curl may fall back to ‘GET’ behavior (although with a PUT method).

Marcos Saturno • Jun 03, 2014

But actually I found some classes ready to use WEB HDFS:
https://github.com/simpleen.

Tx for the help, anyways!

Roger Qiu • Jun 08, 2014

I don’t feel secure knowing my request might be redirected to some place I don’t know.

Shanly • Jun 10, 2014

Awesome post! This solved my problem, thanks.

Arlanthir • Mar 06, 2015

Thank you for this.

Please can any one help me

richyrich • Apr 29, 2015

Thank you so much for this article, saved my time. All the best!

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *