Redirect uri что это
Перейти к содержимому

Redirect uri что это

  • автор:

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

Владельцы интернет-ресурсов часто сталкиваются с тем, что им нужно изменить доменное имя сайта. Например, из-за ренейминга или чтобы перейти на безопасный протокол соединения. Чтобы предстоящие изменения не повлияли на ваш бизнес и пользовательский опыт клиентов, используйте редирект. В этой статье разбираемся, в каких случаях он нужен и как его настроить. Если вы не хотите тратить время на самостоятельную настройку редиректа — оставьте заявку, и специалисты RU-CENTER сделают это за вас.

Что такое редирект и когда он нужен

  • Для адаптации. Самый популярный редирект — перенаправление пользователя с десктопной версии сайта на мобильную.
  • При ренейминге. В случаях, когда вы изменили название бренда и перешли на сайт с новым доменным именем.
  • При переходе на безопасный протокол соединения. Чтобы обезопасить себя и своих клиентов, меняете протокол http на https.
  • Для перенаправления с неактуальных страниц/сайтов. Например, товара больше нет в продаже или вы больше не оказываете какую-то услугу и хотите перенаправить пользователя на страницу с похожим товаром или услугой.
  • При сайтах или страницах-дублях. Схожий контент на нескольких ресурсах ухудшает ранжирование, а если сайты или страницы идентичны, поисковые системы вовсе исключат эти страницы из поиска. Чтобы не создавать дубли и не рисковать ранжированием, настраивают постоянный или временный редирект.
  • При частых запросах с www, если ваш сайт без www. На вас могут сослаться и так, и так, но для поисковых систем это разные сайты, поэтому настраиваете редирект на один из вариантов.
  • При переходе на новый движок сайта. У каждой CMS свои правила генерации URL. Если адрес не будет совпадать со старым, без редиректа не обойтись — иначе клиенты не смогут вас найти.

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

Какие бывают редиректы

Есть четыре основных вида редиректа — 301, 302, 303, 307. Поисковые системы сами определяют его по коду состояния http.

301 — постоянный редирект

Он означает, что ресурс навсегда перемещён на новый адрес. Сайт-донор пропадает из поиска, авторитет и показатели посещаемости передаются сайту-акцептору, который и будет индексироваться.

302 — временный редирект со статусом «Найдено»

Поисковые системы расценивают страницу как временно несуществующую и перенаправляют пользователя на нужную. Все настройки и показатели останутся по старому адресу, индексироваться новый сайт тоже не будет. Такое перенаправление пригодится, например, когда нужно будет обновить сайт.

303 и 307 — аналоги 302 редиректа

303 редирект обозначает «смотрите другой ресурс», его применяют, когда вы не перенесли контент на другой адрес, но у вас есть подходящий под перенаправление другой сайт или страница. Для этого редиректа браузер использует метод GET.

Статус 307 редиректа — временное перенаправление. То есть запрашиваемая страница в данный момент находится по другому адресу. В отличие от 302 изначальная версия ресурса сохранит свои позиции.

Вам не обязательно запоминать, какой редирект что обозначает. Эти цифры при настройке вам не пригодятся. Достаточно понимать, какое решение подойдёт именно в вашей ситуации — временное или постоянное — и написать код, подходящий под нужный редирект.

Как настроить редирект

Настроить редирект можно несколькими способами: изменяя код в файле .htaccess, через админку сайта или в специальных сервисах. Важно: работа с файлом .htaccess возможна при использовании на хостинге веб-сервера Apache.

Для работы в .htaccess нужно установить FTP-клиент (например, filezilla.ru или totalcommander.ru) и уметь работать с кодом, поэтому такой способ сложнее. Обычно его выбирают, когда нужно перенести домен и сделать это бесплатно. Более лёгкий способ — купить доступ к сервису. Тогда знания кода не нужны.

Если нужно сделать перенаправление со страницы, подойдёт более простой вариант переноса — через админку сайта.

В этой статье рассмотрим эти способы на примере самых распространённых причин для редиректа.

Перенос сайта с одного домена на другой

Этот тип перенаправления можно сделать с помощью FTP-клиента. Этот вариант подойдёт тем, кто умеет работать с кодом или готов этому научиться.

Если язык программирования не для вас, перенести домен можно без знаний кода. У RU-CENTER есть специальный сервис «Перенаправление домена».

Перенос с помощью FTP-клиента

Откройте FTP-клиент и найдите файл .htaccess в корневом каталоге вашего сайта. Уточнить путь к корневому каталогу вы можете у вашего хостинг-провайдера. Если в корневом каталоге сайта нет файла .htaccess, создайте новый файл с таким именем (точка в начале имени обязательна).

Чтобы изменить файл, нажмите на него правой кнопкой мыши и кликните «Редактировать» (в используемом вами FTP-клиенте может быть другой способ начала редактирования файла, но обычно названия пунктов меню очень похожи). Он автоматически загрузится к вам на компьютер и откроется в редакторе.

Мы не рекомендуем использовать для редактирования .htaccess редакторы, встроенные в ОС Windows, в частности, «Блокнот». Если в файле содержатся кириллические символы и вы будете сохранять файл в кодировке UTF-8, такие редакторы могут автоматически добавлять в начало файла byte-order-marker (BOM), который может некорректно интерпретироваться веб-сервером. Для редактирования .htaccess лучше использовать специализированные редакторы, например, Notepad++.

Дальше находим в файле .htaccess элемент кода:

RewriteEngine On

RewriteBase /

Если такой записи нет, вставляем её сами в конец файла. Сразу после неё вставляем код с нужным условием:

RewriteCond % ^old\-site\.ru$ [NC]

RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

где old-site\.ru — сайт-донор, а http://www.site.ru — сайт-акцептор.

Важно: В имени домена дефисы и точки необходимо экранировать, добавляя перед ними символ «\». Если речь идёт о домене, например, с кириллическими символами, то его нужно указывать в виде Punycode (xn--…), также включая символ «\».

Как только вы сохраните файл в редакторе, FTP-клиент напомнит вам загрузить обновлённый .htaccess обратно. Просто нажмите на кнопку «Да», и клиент загрузит файл автоматически.

Напоминание загрузить обновлённый .htaccess в FTP-клиенте FileZilla

Перенос с помощью сервиса «Перенаправление домена»

Если настройка через FTP-клиента кажется вам сложной, можно выбрать вариант проще — приобрести доступ к сервису «Перенаправление домена» у RU-CENTER. Чтобы в нём работать, не нужно разбираться в коде. Сможете сделать редирект для домена, всех его поддоменов, а также настроить до десяти индивидуальных правил перенаправления для конкретных поддоменов.

Организация перенаправления на безопасный протокол HTTPS

Ещё один популярный вариант редиректа — перенос сайта на безопасный протокол соединения с http на https. Мы расскажем об одном способе настройки этого вида редиректа, он подходит для хостинга RU-CENTER. Но, алгоритм обеспечения работы по HTTPS может отличаться на разных хостингах, поэтому точный способ такого перенаправления стоит уточнить у вашего хостинг-провайдера.

Откройте FTP-клиент и найдите файл .htaccess в корневом каталоге сайта (уточнить имя корневого каталога вы можете у вашего хостинг-провайдера). Если файла с таким именем нет в корневом каталоге, создайте новый файл с именем .htaccess.

Находим в файле .htaccess элемент кода:

RewriteEngine On

RewriteBase /

Если такой записи нет, вставляем её сами в конец файла. Сразу после неё вставляем код с нужным условием:

RewriteCond % !on

RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]

где https://domain.ru — ваш сайт.

Перенос сайта с домена без префикса www на домен с www

Откройте FTP-клиент и найдите файл .htaccess в корневом каталоге сайта (уточнить имя корневого каталога вы можете у вашего хостинг-провайдера). Если файла с таким именем нет в корневом каталоге, создайте новый файл с именем .htaccess.

Находим в файле .htaccess элемент кода:

RewriteEngine On

RewriteBase /

Если такой записи нет, вставляем её сами в конец файла. Сразу после неё вставляем код с нужным условием:

RewriteCond % ^site\.ru$ [NC]

RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

где site.ru — страница-донор, а http://www.site.ru — страница-акцептор.

Перенос одной страницы на другую временно или постоянно

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

Объясняем, как это сделать, на примере сайта на WordPress.

Заходим в админку сайта, находим в списке возможностей вкладку «Инструменты», в ней выбираем «Перенаправления» и кликаем на кнопку «Добавить новое».

Путь получается следующий: админка сайта → Инструменты → Перенаправления → Добавить новое.

Чтобы добавить перенаправление, заполните поля:

Исходный URL — в нём напишите относительный путь, то есть адрес страницы без указания домена, только то, что прописано после слеша.

Параметры запроса — выберите из выпадающего списка нужное условие. В нашем случае — «Точное совпадение всех параметров в любом порядке».

Целевой URL-адрес — полный адрес, куда вы планируете перенести контент.

Когда мы сохранили перенаправление, получился такой редирект:

где /baza-znanij/slovar — страница-донор,

Не откладывайте настройку редиректа. Есть как минимум три причины, чтобы перенаправить нужные страницы сразу же, как возникла потребность:

  • Редиректы сохраняют качество ранжирования, а значит и обеспечивают трафик. Это легально: настройка перенаправлений не нарушает требования поисковых роботов.
  • Редиректы не ухудшают пользовательский опыт — на перенаправление пользователя с одного адреса на другой уходит меньше секунды.
  • Редиректы полезны для SEO-оптимизации. Сайты с одинаковым контентом хуже ранжируются, а редиректы помогают сосредоточить трафик на одном ресурсе и не потерять позиции в поиске.

Читайте также:

  • Как научиться читать код сайта и зачем это нужно, если вы не программист
  • Что такое UTM-метки и как они помогают отслеживать эффективность рекламы
  • 5 SEO-ошибок при создании сайта

Перенаправления в HTTP

URL перенаправление (redirecting), также известное как URL пересылка (forwarding), это метод представления страницы, формы или целого веб-приложения, более чем одним URL адресом. HTTP предоставляет специальный вид ответов, HTTP redirect, для выполнения этой операции, используемой для многих целей: временного перенаправления, пока выполняется обслуживание сайта, постоянное перенаправление, для сохранения работоспособности внешних ссылок, после смены архитектуры сайта, страниц прогресса, пока загружается файл, и так далее.

Принцип работы

В HTTP, перенаправление вызывается при отправке сервером специального ответа на запрос: redirects. HTTP перенаправление, это ответы с кодом статуса 3xx . Когда браузер получает ответ перенаправления, он использует новый предоставленный URL-адрес и немедленно загружает его: в большинстве случаев переадресация невидима для пользователя, за исключением небольшого влияния производительность.

Есть несколько типов перенаправлений и делятся на три категории: постоянные, временные и специальные перенаправления.

Постоянные перенаправления

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

Код Текст Обработка метода Случаи использования
301 Moved Permanently GET методы неизменны. Другие методы могут быть превращены в GET .[1] Реорганизация веб-сайта.
308 Permanent Redirect Метод и тело запроса неизменны. Реорганизация веб-сайта, с не-GET ссылками/операциями.

[1] Спецификация не была намерена разрешать изменение метода, но на практике, клиентские приложения делают это. Код 308 был создан чтобы избавиться от неоднозначности в поведении, при использовании не- GET методов.

Временные перенаправления

Иногда, доступ к запрашиваемому ресурсу не может быть предоставлен из определённого места, но может быть предоставлен из другого. В этом случае, могут быть использованы временные перенаправления. Поисковые роботы не запоминают новую, временную ссылку. Временные перенаправления также используются, когда создаются, обновляются, или удаляются ресурсы, которые представляют временные страницы.

Код Текст Обработка метода Случаи использования
302 Found GET методы неизменны. Другие методы могут быть превращены в GET .[2] Веб-страница недоступна по непредвиденным причинам. В этом случае поисковые роботы не будут обновлять свои ссылки.
303 See Other GET методы неизменны. Другие превращены в GET (тело запроса теряется). Используется для перенаправления после PUT или POST для предотвращения обновления страницы, что может спровоцировать повторный вызов операции.
307 Temporary Redirect Метод и тело запроса неизменны. Веб-страница недоступна по непредвиденным причинам. В этом случае поисковые роботы не будут обновлять свои ссылки. Лучше чем код 302 когда не-GET ссылки/операции доступны на сайте.

[2] Спецификация не была намерена разрешать изменение метода, но на практике, клиентские приложения делают это. Код 307 был создан чтобы избавиться от неоднозначности в поведении, при использовании не- GET методов.

Специальные перенаправления

В добавок к обычным перенаправлениям, есть 2 специальные. Перенаправление с кодом 304 (Not Modified) перенаправляет страницу к локальной закешированной копии (которая была устаревшей), и перенаправление с кодом 300 (Multiple Choice) это ручное перенаправление: тело, представленное браузером, как веб-страница, перечисляет возможные перенаправления и пользователь выбирает одно из них.

Код Текст Случаи использования
300 Multiple Choice Не так много: варианты перечислены на HTML странице. Может быть обслужен со статусом 200 OK .
304 Not Modified Обновление кеша: означает, что значение кеша все ещё актуально и может быть использовано.

Альтернативные способы указания перенаправлений

HTTP перенаправления это не единственный способ переадресации. Есть ещё два метода: HTML перенаправления используют элемент , и JavaScript перенаправления используют DOM.

HTML перенаправления

HTTP перенаправления более предпочтительный способ создания перенаправлений, но, иногда, у веб-разработчиков нету контроля над сервером или возможности настроить его. Для таких особых случаев, разработчики могут создать HTML страницу с элементом и установить атрибуту http-equiv значение refresh в блоке . Когда страница отображается, браузер найдёт этот элемент и перейдёт на указанную страницу.

head> meta http-equiv="refresh" content="0; URL=http://www.example.com/" /> head> 

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

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

Примечание: что перенаправления не позволяют работать должным образом кнопке «Назад» в браузере: вы можете вернуться на страницу назад, но мгновенно будете перенаправлены на страницу с которой пришли.

JavaScript перенаправления

Перенаправления в JavaScript создаются установкой значения свойства window.location и новая страница загрузиться.

.location = "http://www.example.com/"; 

Как и HTML перенаправления, этот тип не будет работать на всех ресурсах, и очевидно, что работает только на стороне клиента, который выполнит JavaScript. С другой стороны, вы можете вызвать перенаправление, только тогда, когда исполнится определённое условие.

Приоритетность

При использовании трёх возможных способов URL перенаправления, некоторые методы могут быть вызваны одновременно, но какой из них будет примёнён первым? Порядок приоритетов следующий:

  1. HTTP перенаправления всегда выполняются первыми, пока ещё страница даже не была передана, и конечно же, пока ещё не прочитана.
  2. HTML перенаправления ( ) выполняются только, если перенаправление не было в выполнено в HTTP.
  3. JavaScript перенаправления используются как последняя возможность перенаправления, и работают только если разрешено выполнение JavaScript на клиентской стороне.

Случаи использования

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

Связывание доменов

В идеале, есть только одно место, и следовательно один URL адрес, для одного ресурса. Но, есть несколько причин, чтобы иметь альтернативные имена для ресурса (несколько доменов, как с, так и без префикса www или более короткие и лёгкие для запоминания адреса, …). В этих случаях, использовать перенаправление к одному истинному URL адресу, более подходящий вариант, чем дублировать ресурс.

Связывание доменов может быть необходимым по нескольким причинам:

  • Расширение вашего сайта. Распространённый случай, когда ваш сайт находится под доменом www.example.com , а доступ к страницам должен быть возможным также из example.com . В этом случае создаются перенаправления для страниц из example.com к страницам www.example.com . Вы также можете предоставлять обычно используемые имена синонимов или частые опечатки ваших доменных имён.
  • Переезд на другой домен. К примеру, ваша компания была переименована и вы хотите чтобы люди которые обычно использовали старый сайт компании находили вас под новым именем.
  • Принуждённый HTTPS. Запросы к HTTP версии вашего сайта буду перенаправлены к HTTPS версии.

Сохранения ссылок рабочими

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

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

Временные ответы для небезопасных запросов

Небезопасные запросы изменяют состояние сервера и пользователь не должен не нарочно запросить их. Обычно, вы не хотите чтобы ваши пользователи повторно отправляли PUT , POST или DELETE запросы. Если вы только обслуживаете запросы, простое нажатие кнопки перезагрузки повторно отправит запрос.

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

Временные ответы на долгие запросы

Некоторые запросы могут потребовать больше времени сервера, например запрос DELETE , который срабатывает по расписанию. В этом случае, ответом будет перенаправление 303 (Смотреть другие), которое связывает со страницей показывающей, что действие было запланировано, и в результате информирует о процессе или позволяет отменить запрос.

Настройка перенаправлений на распространённых серверах

Apache

Перенаправления могут быть установлены или в настройках сервера, или в каждой директории в файле .htaccess .

У модуля mod_alias есть директивы Redirect и Redirect_Match которые, по умолчанию, устанавливают код ответа 302 :

 ServerName example.com Redirect / http://www.example.com 

URL http://example.com/ будет перенаправлен к http://www.example.com/ (но не к http://example.com/other.html )

Redirect_Match делает то же, но использует регулярное выражение, чтобы определить множество URL адресов, которые подпадут под эффект:

RedirectMatch ^/images/(.*)$ http://images.example.com/$1

Все документы в папке images/ будут перенаправляться к другому домену.

Если вы не хотите устанавливать временное перенаправление, дополнительный параметр (используйте или код статуса HTTP, или ключевое слово permanent ) может использоваться чтобы установить другое перенаправление:

Redirect permanent / http://www.example.com Redirect 301 / http://www.example.com

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

Nginx

В Nginx, вы создаёте особый серверный блок для контента, который вы хотите перенаправлять:

server < listen 80; server_name example.com; return 301 $scheme://www.example.com$request_uri; >

Чтобы применить перенаправления к папке или подмножеству страниц, используйте директиву rewrite :

rewrite ^/images/(.*)$ http://images.example.com/$1 redirect; rewrite ^/images/(.*)$ http://images.example.com/$1 permanent;

IIS

Циклы перенаправлений

Циклы перенаправлений случаются когда за успешным перенаправлением следует другое, которое уже было выполнено. Другими словами, существует такой цикл, который никогда не закончится и в конечном счёте ни одна страница не будет найдена.

В большинстве случаев это проблема сервера, и если сервер не может обнаружить её, то отправит код статуса 500 Internal Server Error . Если вы встретите такую ошибку вскоре после редактирования настроек сервера, то это скорее всего цикл перенаправлений.

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

Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

тогда, как Chrome:

This Webpage has a redirect loop

В обоих случаях, пользователь не может ничего сделать (в отличие от ошибки на стороне клиента, например, несоответствие файлов куки или кеша).

Важно избегать циклов перенаправлений, так как они полностью нарушают работу пользователя.

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 7 авг. 2023 г. by MDN contributors.

Your blueprint for a better internet.

Авторизация через внешние сервисы

Это значит вы указали не тот redirect url, когда подключали ваш сайт в соц сети.
Через какую соц сеть вы пытались настроить авторизацию?

+1

Андрей Цымбалюк 3 декабря 2015 17:01 #

Окей,я пораскинул мозгами,подключил авторизацию через Standalone-приложение,вроде бы авторизация есть,НО все равно нельзя получить информацию,потому что снова после редиректа ошибка.Через vk.com

+1

Александр Викторович Музыченко 3 декабря 2015 17:05 #

https://www.webasyst.ru/developers/docs/auth/auth-.
Написано: Выберите тип приложения «Веб-сайт»
Дальше нужно указать адрес вашего магазина и домен вашего магазина.

+1

Андрей Цымбалюк 3 декабря 2015 17:12 #

Готово.Я изменил все данные ошибка та же.

+1

Александр Викторович Музыченко 4 декабря 2015 00:15 #

Установка приложения: по умолчанию создается «Не требуется», вы поменяли на «Требуется»
Зачем?
Какие вы еще параметры меняли?
Нужно лишь было открыть https://vk.com/editapp?act=create
Выбрать тип приложения «Веб-сайт», заполнить 3 поля и дальше скопировать ID приложения и ключ приложения в настройки сайта.
Ничего больше делать не нужно было!

Я только что проверил на новом сайте, если на самом деле делать всё по инструкции, то всё прекрасно работает.

+1

Андрей Цымбалюк 4 декабря 2015 00:50 #

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

+1

Андрей Цымбалюк 4 декабря 2015 01:00 #

Я проделал все указанное в инструкции,но ошибка сохранилась.Даже не знаю что нужно делать дальше
2

Doy0 1 января 2016 15:58 #

Что такое redirect uri и как его сделать в django?

После подключения allauth приступил к созданию приложений для разных соцсетей. Везде есть такое поле как redirect uri. Где-то это обязательное поле, где-то нет. Я не совсем понял, что это за поле и почему нельзя просто указать реальную страницу, на которую после авторизации под аккаунтом соцсети, пользователя будет перекидывать (Например корень).
— в VK это поле необязательное и его можно оставить пустым. Если указать главную страницу сайт, то каждый раз будет возвращаться json «Redirect URI does not match registered redirect URI». В итоге оставил поле пустым и после этого стал залогиниваться под учеткой вк.
— в facebook такого нет. Есть Домены приложений куда надо добавить адрес своего сайта. Я добавил, но так и не могу зайти под учеткой fb — пишет «Невозможно загрузить URL: Домен этого URL не включен в список доменов приложения. Чтобы загрузить этот URL, добавьте все домены и поддомены своего приложения в поле «Домены приложения» в настройках вашего приложения.»
— в twitter все просто (как же я люблю твитур с ним всегда все просто). Поле Callback URL есть. Оно не обязательное и если ввести тот адрес, что указан в докусентации, то все отлично работает «127.0.0.1:8000/accounts/twitter/login/callback»
— Одноклассники — то же самое поле есть в приложении и оно обязательное, если указать то что написано в документации — «example.com/accounts/odnoklassniki/login/callback» то при авторизации через ОК получаем ответ от одноклассников «Указанный redirect_uri не зарегистрирован в настройках приложения.
redirect_uri: xxx.com/accounts/odnoklassniki/login/callback»

Что это за адрес? Как его зарегистрировать в django? что нужно что бы api перестали ругаться и начали нормальн опускать?

p.s. — естественно вместо адреса example.com и 127.0.0.1:8000 я использовал адрес своего сайта.

  • Вопрос задан более трёх лет назад
  • 2544 просмотра

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

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