# Оформление ссылок в соцсетях с помощью Open Graph разметки
Open Graph разметка на сайте позволяет сделать соцсети под постом карточку с заголовком, изображением и описанием для ссылки. Этот блок формируется автоматически если прикрепить ссылку к посту.
Содержание
- Настройка
- Основные теги
- Пример разметки
- Плагины для CMS
- Требования к изображениям
- Как проверить Open Graph на сайте
- Пример разметки для Twitter
- Требования Twitter
- Можно ли отредактировать заголовок и изменить фото?
- Карточка для ссылки формируется без фото
- Карточка формируется с маленьким фото
- Как настроить импорт из RSS, чтобы работали Open Graph карточки?
- Загрузилась не та картинка. Что делать?
- Карточка не оформляется в Twitter
- Пост со ссылкой не публикуется
# Настройка
Исходную документацию на английском языке можно найти на сайте ogp.me
- Чтобы обозначить, что на странице используется Open Graph разметка нужно добавить в тег особый префикс —
- Open Graph теги настраиваются в HTML-коде страницы и указываются внутри тегов .
Чтобы все настроить потребуется попросить помощи у веб-мастера или администратора сайта.
# Основные теги
Тег Описание og:url Ссылка на статью og:title Заголовок статьи — лучше без какого-либо упоминания бренда, например названия сайта. og:description Краткое описание материалов (обычно 2–4 предложения). og:type Тип материала, например article. Все значения для тега. # Пример разметки
meta property="og:url" content="http://www.nytimes.com/2015/02/19/arts/international/when-great-minds-dont-think-alike.html" /> meta property="og:type" content="article" /> meta property="og:title" content="Когда великие умы не думают одинаково" /> meta property="og:description" content="Насколько культура влияет на творческое мышление?" /> meta property="og:image" content="http://static01.nyt.com/images/2015/02/19/arts/international/19iht-btnumbers19A/19iht-btnumbers19A-facebookJumbo-v2.jpg" /> meta property="og:image:width" content="971" /> meta property="og:image:height" content="509" /># Плагины для CMS
Если ваш сайт использует одну из популярных CMS, то с большой вероятностью для него есть бесплатные плагины формирующие разметку.
Ссылки на списки вариантов:
# Требования к изображениям
Универсальным будет изображение с шириной от 600 пикселей и высотой от 315 пикселей.
# Facebook
- Не менее 600×315 пикселей, до 8 мегабайт.
- Если изображение меньше, то используется уменьшенная версия фото.
- Если одна из сторон меньше 200 пикселей, то изображение не прикрепляется.
- Другие вложения к записи запрещены.
# ВКонтакте
- Не менее 510×228 пикселей.
- Если изображение меньше, то используется уменьшенная версия фото.
- Если одна из сторон меньше 160 пикселей, то изображение не прикрепляется.
- Если помимо ссылки прикреплены другие вложения, картинка в сниппете будет уменьшенная — 150×83.
# Twitter
Минимум 280×150 пикселей и не больше 1 мегабайта.
# Одноклассники
Требовательны к скорости загрузки страницы — если ответ от сервера в момент публикации будет больше чем 200 мс, то пост с такой ссылкой может вообще не опубликоваться.
# Как проверить Open Graph на сайте
Протестируйте свою разметку через инструмент от Facebook
. Введите ссылку на страницу — инструмент покажет метатеги которые нашел, а также ошибки и предупреждения.
# Настройка карточек для Twitter
# Пример разметки для Twitter
Есть несколько типов карточек, которые может оформить Твиттер. summary_large_image — имеет больший размер изображения.
meta name="twitter:card" content="summary_large_image"> meta name="twitter:site" content="@ваш аккаунт в Twitter"> meta name="twitter:title" content="Название статьи"> meta name="twitter:description" content="Краткое описание"> meta name="twitter:image:src" content="Ссылка на изображение"># Требования Twitter
- Заголовок: до 70 символов.
- Описание: до 200 символов.
- Изображение: минимум 280×150 пикселей и не больше 1 мегабайта.
# Как добавить Open Graph через соцпостер?
Прикрепите ссылку к посту используя в редакторе кнопку .
# Можно ли отредактировать заголовок и изменить фото?
Нет. Это информация берется соцсетью по ссылке — данные нужно изменять там.
# Карточка для ссылки формируется без фото
Могут быть разные причины.
-
Не указаны теги на странице. Проверьте через браузер или через инструмент Facebook
Для проверки через браузер активируйте панель разработчика сочетанием клавиш:
- Ctrl+Shift+I в Firefox, Chrome, «Яндекс.Браузере», Edge, Opera для Windows;
- Option+Command+J в Firefox, Chrome, «Яндекс.Браузер», Opera для macOS;
- Option+Command+U в Safari для macOS;
Откройте вкладку «Инспектор», «Элементы» или «Elements». Разверните структуру с тегом — должны быть видны теги и . Проверьте, на месте ли необходимая разметка и т.д.

- Сайт долго отвечает. При публикации ссылки через API некоторыми соцсетями используются немного другие механизмы, чем при работе напрямую через их интерфейс — в этом случае иногда может негативно сказаться фактор скорости ответа сервера. Если он больше 200 мс, то изображение может не прикрепиться.
- Если ширина и высота фото не указана в разметке, то попробуйте указать. Полезно для Facebook. Пример:
# Карточка формируется с маленьким фото
Фото в og:image может быть меньше требуемого размера — проверьте размер изображения на соответствие требованиям.
# Как настроить импорт из RSS, чтобы работали Open Graph карточки?
Нужно отключить загрузку вложений «Изображения» и включить опцию «Прикрепить ссылку к посту». Таким образом настройки будут выглядеть так:
# Загрузилась не та картинка. Что делать?
Соцпостер не может повлиять, какое фото будет использовано. Управление только с помощью разметки og:image в коде страницы — убедитесь, что ссылка начинается с http(s).
# Карточка не оформляется в Twitter
# Пост со ссылкой не публикуется
- В Facebook нельзя опубликовать пост со ссылкой и другими вложениями одновременно.
- Одноклассники чувствительны к скорости открытия страницы.
# Официальные документации соцсетей
Собрали ссылки на документации соцсетей, где можно найти актуальную информацию к их требованиям.
Модуль Разметка Open Graph для Opencart 2
Разметка Open Graph создана для того, чтобы управлять отображаемым содержимым при публикации ссылок в соцсетях. Модуль добавляет мета-теги с данными для социальных сетей.
Open Graph — протокол, который позволяет управлять и контролировать данные, формирующиеся в превью в посте, когда пользователь делиться ссылкой в социальных сетях.
Установка модуля:
1. Распаковать архив и выбрать нужный модуль
2. Установить модуль через админку
3. Обновить модификацииМодуль работает Opencart 2.0, 2.1, 2.2, 2.3
Оцените этот модуль
Рейтинг: 4.2 из 5 — 12 голосов- Opencart 2.0
- Opencart 2.1 и ocStore 2.1
- Opencart 2.2
- Opencart 2.3 и ocStore 2.3
1. Скачайте и установите фикс Localcopy
2. Обновите модификации в админке
3. Загрузите модуль нановоОшибка 500 после установки модуля означает, что случилась какая-то критическая ошибка в php.
Для определение проблемы можно:
1. Открыть файл logs/error.log на вашем сервере. В конце этого файла будут все последние критические ошибки.
2. Открыть в админке Инструменты > Логи ошибок — в этом месте отображаются ошибки, но не всегда.
3. Включить вывод ошибок php на экран — добавить следующий код в конец файла .htaccess:php_value display_errors 1
php_value display_startup_errors 1
php_value error_reporting E_ALL1. Если вы раньше не загружали модули в архиве через админку — вам нужно установить бесплатную модификацию localcopy.ocmod.xml согласно инструкции и после этого переустановить модуль
2. Возможно в устанавливаемого модуля нет собственной страницы настроек и соответственно его не будет в списке Модулей
Два варианта решения:
1. Если при установке модуля из админки вылетает эта ошибка — вам нужно установить бесплатную FTP QuickFix модификацию localcopy.ocmod.xml. Она установиться без проблем через тот же установщик дополнений, только после установки не забудьте обновить модификации и затем можете приступать к установке любых модулей на Opencart 2.
2. Также решить эту ошибку можно по другому: прописать доступы к FTP в админке Система > Настройки > Магазин > вкладка FTP.
Если вы видите сообщение » Доступ запрещен! У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору. » — нужно дать права администраторам на управление модулем или страницей.
Решение: в админке Opencart 2 переходим в Система > Пользователи > Группы пользователей > Администраторы и здесь нажимаем «Выделить все» ниже обоих блоков, затем Сохранить .
Еще одной причиной появления этой ошибки может быть не правильная установка модуля — файлы не загрузились на свои места. Загрузите файлы модуля вручную на сервер или установите фикс localcopy и переустановите модуль.
Если модуль — это один XML файл, то его расширение должно быть .ocmod.xml
Если модуль — это ocmod.zip архив, то его не нужно распаковывать, а устанавливать как есть. В таком архиве обязательно должна быть папка upload (может быть пустой) , а также могут быть файлы модификаций: install.xml , install.php , install.sql . Никаких других файлов в корне архива быть не должно.
Решение: в админке Opencart 2 переходим в Система > Пользователи > Группы пользователей > Администраторы и здесь нажимаем «Выделить все» ниже обоих блоков, затем Сохранить .
Эта ошибка означает, что в загружаемом архиве отсутсвует папка upload. Даже если у модуля нет файлов, кроме модификаций — эта папка должна присутствовать в архиве модуля .ocmod.zip, тогда она должна оставаться пустой.
Эта ошибка означает, что вы пытаетесь установить модификатор, который уже установлен или, возможно, у какого-то вашего модуля такой же ID.
Для решения этой ошибки вам нужно перед установкой удалить старую версию модификации в разделе Модули > Модификации.
Если такого модуля у вас нет, но совпадает ID, тогда нужно поменять значение параметра в устанавливаемом модификаторе XML, сделать этот параметр уникальным дописав несколько символов.
Эта ошибка означает, что вы пытаетесь установить слишком объемный xml- модификатор.
Количество символов в ocmod.xml файле не должно превышать 65535 .
Для решения ошибки нужно разбить xml-файл модификации на несколько частей, главное — не забыть задавать каждой уникальное значение в , можно добавлять к текущему значению цифры 1,2,3. как идентификаторы части.
Еще одним способом решения есть изменения типа в поля, где храняться модификации, в таблице ‘oc_modification’ базы данных. Нужно выполнить следующий SQL-запрос:
ALTER TABLE oc_modification CHANGE xml xml MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;Похоже, вы установили на Opencart 2.3.x.x модуль для более старых версий этой системы, то есть не совместимый модуль. Нужно удалить все файлы этого модуля, иначе ошибка не исчезнет.
Для удаления файлов модулей из админкм в один клик можно использовать модуль
Также данная ошибка может возникать, если скрипт обращается к несуществующей таблице в базе данных. То есть, таблица модуля не создалась при установке. Читайте инструкцию по установке и переустановите модуль.
Если модуль не реагирует на ваши действия, будь-то нажатие на кнопку или загрузка карты или выбор даты или на любое другое действие которое есть в функционале модуля — скорее всего произошел конфликт в JS-скриптах.
Нажмите F12 на проблемной странице в браузере — откроется панель вебмастера, где на вкладке Console можно увидеть конфликты в скриптах, если они есть. Данное действие доступно в браузерах Chrome, Opera, Firefox.
Создание REST API для проекта на Yii2.

Фреймворк Yii2 включает набор средств для упрощённой реализации RESTful API.
Основы работы с REST в Yii2 можно прочитать тут.В данной статье практический пример реализации REST API на основе существующих в фреймворке средств.
В файле REST контроллера vendor/yiisoft/yii2/rest/ActiveController.php можно посмотреть какие действия и типы запросов используются:
protected function verbs() < return [ 'index' =>['GET', 'HEAD'], 'view' => ['GET', 'HEAD'], 'create' => ['POST'], 'update' => ['PUT', 'PATCH'], 'delete' => ['DELETE'], ]; >
С этими действиями можно работать, например изменять, расширять, удалять и тд.
Для серьезного проекта с перспективой роста следует сразу определиться с архитектурой. Я предлагаю использовать такую структуру размещения каталогов и файлов API:

Данная структура похожа на указанную в разделе «Версионирование» документации Yii2: https://github.com/yiisoft/yii2/blob/master/docs/guide-ru/rest-versioning.md
Для примера буду использовать фреймворк версии «advanced».
Каталог «api» создается в корне проекта и представляет из себя отдельный раздел наряду с backend и frontend со своими конфигами, контроллерами, моделями и «точкой входа» — index.php. Таким образом нужно создать для него поддомен или же настроить перенаправление на WEB сервере, чтобы API открывалось, например, по ссылке: api.yoursite.comКак видно из схемы, можно создать несколько версий API (v1, v2, v3. ). Это делается для того, чтобы можно было создавать новый функционал, предоставлять данные в измененном виде и при этом пользователи которые уже используют ваше API могли дальше его использовать с теми же настройками и у них ничего не «ломалось».
Есть пример проекта использующего указанную структуру размещения файлов API: https://github.com/deerawan/yii2-advanced-api
который я брал за основу, но если будете его клонировать, то учтите, что он древний и сходу не заработает, нужно немного доработать. Поэтому я выкладываю в архиве
каталог «api» со всеми файлами, который совместим с текущей версией фреймворка Yii2 (2.0.15).В архиве есть контроллер, модель и миграции указанного выше проекта (с демо данными) для демонстрации работы API, на базе которых можно создавать свои.
Таким образом, прежде всего нужно перенести папку «api» из архива в корень проекта. Далее перенести файлы миграций в папку с миграциями (console\migrations) и применить миграции.
Так же, желательно, дополнить папку environments проекта файлами из архива, чтобы после клонирования проекта и выполнения команды php init, локальные файлы типа «index.php», «main-local.php» и тд. создавались автоматически в своих папках. Если команда init уже выполнялась (т.е. API создается для уже действующего проекта), то на другом компьютере после команды git pull просто скопировать файлы из папки environments в соответствующие папки каталога «api».Папка api подключается автоматически в автозагрузку классов фреймворка, т.к. в конфиге указан для нее алиас:
'aliases' => [ '@api' => dirname(dirname(__DIR__)) . '/api', ],
Основной конфигурационный файл api/config/main.php уже полностью настроен для работы с тестовым API, поэтому, после проверки работы остается только изменить некоторые строки на свои. Так, в секции urlManager указываем свой REST контроллер:
'rules' => [ [ 'class' => \yii\rest\UrlRule::class, 'controller' => ['v1/country'], 'prefix' => 'api', ]
В общем ничего сложного и вот уже вы можете тестировать работу REST API.
Получим список стран выполнив GET запрос без параметров:
http://YOUR_SITE/api/v1/countriesДалее информация из практического применения.
Несколько версий (v1, v2…).
Если нужно будет сделать несколько версий, то просто создать в папке api/modules папку с новой версией, например «v2» со своим модулем и др. файлами по аналогии.
Подключить в api/config/main.php:'modules' => [ 'v1' => [ 'basePath' => '@app/modules/v1', 'class' => \api\modules\v1\Module::class, ], 'v2' => [ 'basePath' => '@app/modules/v2', 'class' => \api\modules\v2\Module::class, ] ], … 'rules' => [ [ 'class' => \yii\rest\UrlRule::class, 'controller' => ['v1/country', 'v2/country'], 'prefix' => 'api', ] ],
где «country» — название вашего REST контроллера.
Добавляем свой метод/действие
'rules' => [ [ 'class' => \yii\rest\UrlRule::class, 'controller' => ['v1/country'], 'prefix' => 'api', //api будет доступен по url, начинающимся с /api/ 'extraPatterns' => [ 'GET /' => 'new', ], ],
Тут указывается, что при вызове методом GET (без параметров) будет выполнен метод actionNew контроллера. Вызывать нужно во множественной форме, не country, а countries: http://YOUR_SITE/api/v1/countries
т.к. свойство ‘pluralize’ не определено в false.
Пример для других методов:'extraPatterns' => [ 'POST /your_preferred_url' => 'xxxxx', // 'xxxxx' refers to 'actionXxxxx' ],
Пример своего действия REST контроллера:
public function actionNew() < $requestParams = Yii::$app->getRequest()->getBodyParams(); if (empty($requestParams)) < $requestParams = Yii::$app->getRequest()->getQueryParams(); > /* @var $modelClass \yii\db\BaseActiveRecord */ $modelClass = $this->modelClass; $query = $modelClass::find(); if (!empty($filter)) < $query->andWhere($filter); > return Yii::createObject([ 'class' => ActiveDataProvider::className(), 'query' => $query, 'pagination' => [ 'params' => $requestParams, ], 'sort' => [ 'params' => $requestParams, ], ]); >
Тут я за основу взял метод prepareDataProvider из vendor/yiisoft/yii2/rest/IndexAction.php .
Метод возвращает объект ActiveDataProvider. Но можно в действии возвращать что угодно, например:public function actionNew() < $result = $this->modelClass::find() ->where(['>', 'population', 70000000]) ->all(); return $result; >
Передаваемые данные сериализуются автоматически и пользователь получит ответ в формате JSON или XML.
Если данных может быть очень много стоит использовать ActiveDataProvider чтобы разбивать передачу на части (пагинация).Переопределение стандартных действий REST
Стандартные действия (index, view, create и тд.) прописаны в vendor/yiisoft/yii2/rest/ActiveController.php
Например нужно переопределить метод index. Для этого в своем контроллере (типа api/modules/v1/controllers/CountryController.php) переопределяем метод actions:
public function actions() < $actions = [ 'index' =>[ 'class' => api\modules\v2\actions\IndexAction::class, 'modelClass' => $this->modelClass, 'checkAccess' => [$this, 'checkAccess'], ], ]; return array_merge(parent::actions(), $actions); >
где указываем нужное действие и путь к его классу.
В переопределенном действии обязательным есть метод run. Пример api/modules/v1/actions/IndexAction.php:checkAccess) < call_user_func($this->checkAccess, $this->id); > return $this->prepareDataProvider(); > /** * Prepares the data provider that should return the requested collection of the models. * @return ActiveDataProvider */ protected function prepareDataProvider() < $requestParams = Yii::$app->getRequest()->getBodyParams(); if (empty($requestParams)) < $requestParams = Yii::$app->getRequest()->getQueryParams(); > /* @var $modelClass \yii\db\BaseActiveRecord */ $modelClass = $this->modelClass; $query = $modelClass::find(); if (!empty($filter)) < $query->andWhere($filter); > return Yii::createObject([ 'class' => ActiveDataProvider::className(), 'query' => $query, 'pagination' => [ 'params' => $requestParams, ], 'sort' => [ 'params' => $requestParams, ], ]); > >
Тут можно добавить какие-то фильтры в выборку из БД. Данные для фильтра можно получать из URL.
Так же можно удалить лишние действия или переопределить какое-то прямо в своем REST контроллере
public function actions() < $actions = parent::actions(); // disable the "delete" and "create" actions unset($actions['delete'], $actions['create']); // customize the data provider preparation with the "prepareDataProvider()" method $actions['index']['prepareDataProvider'] = [$this, 'prepareDataProvider']; return $actions; >public function prepareDataProvider() < // prepare and return a data provider for the "index" action >
Добавить условие выборки тут же в методе actions
public function actions() < $actions = parent::actions(); $actions['index']['prepareDataProvider'] = function ($action) < return new ActiveDataProvider([ 'query' =>$this->modelClass::find()->where('code=:code', [':code' => $_GET['code']]), ]); >; return $actions; >Метод поиска/выборки (тут — search) по БД можно разместить и в самой модели, особенно если используются дополнительные условия выборки:
public function actions() < return [ 'index' =>[ 'class' => 'yii\rest\IndexAction', 'modelClass' => $this->modelClass, 'prepareDataProvider' => function () < $searchModel = new SearchModel(); return $searchModel->search(Yii::$app->request->queryParams); >, ], ]; >
Автор: Сергей Дата публикации: 30.09.2018
- Yii2 — подтверждение регистрации на сайте по email.
- Создание расширения (пакета) для Yii2.
- Мультиязычный сайт на Yii2.
- ЧПУ ссылки (URL) для сайта на Yii2 с использованием слов вместо идентификаторов.
- Отдельные действия контроллеров Yii2
Вопросы с меткой [seo]
Поиско́вая оптимиза́ция, SEO — комплекс мер для поднятия позиций сайта в результатах выдачи поисковых систем по определенным запросам пользователей. Используйте метку только для вопросов, касающихся применения SEO в разработке веб-сайтов.
590 вопросов
Конкурсные
Неотвеченные- Конкурсные 0
- Неотвеченные
- Цитируемые
- Рейтинг
- Неотвеченные (мои метки)
16 показов
Не появилась внешняя ссылка в индексе
Обменялся с другим сайтом ссылками 20-го ноября и до сих пор моя ссылка у него не появилась в индексе гугла. На моей ссылке у него на сайте nofollow не стоит. Но в head на странице с ссылками у него .
задан 14 янв в 18:14
Страницы с noindex или пустые страницы
Скажите что хуже для Сео: страницы помеченные noindex или страницы с пустым контентом? Ситуация следующая у меня сайт https://englishask.ru где почти каждая страница — это небольшой видеоурок по .
задан 7 янв в 11:08
Как верно оформлять ссылки на сторонние ресурсы?
https://site.ru К ссылкам на сторонние сайты добавляю атрибут rel c .
задан 5 янв в 17:42
56 показовWP Технические страницы мультиязычного сайта. Нужно ли делать разные версии?
Есть некий мультиязычный сайт https://example.net/ У него есть информационные страницы по типу /about-us/ /call-back/ /privacy-policy/ и тд. трафик эти страницы не генерируют, но и в robots.txt их .
задан 28 дек 2022 в 12:22
29 показовСтоит ли сейчас абзацы обертывать в тег
Стоить ли в статьях, абзацы обертывать в тег
Текст
Тогда когда для отображения, для отображения всех переносов и отступов. Достаточно на блок выставить свойство white-.
задан 24 дек 2022 в 11:52
187 показовУбрать слеш в конце ссылки. NGINX
При переходе site.ru/about кидает на site.ru/about/. Как убрать автоматическую подстановку слеш в конце ссылки в настройках NGINX, что бы было так site.ru/about Вот мой конфиг: server < .
задан 20 дек 2022 в 12:54
19 показовРедирект в NGINX
Сделал редирект для определенных страниц: location /kacheli < return 301 /catalog/oborudovanie-deti/kacheli/; >location /velosiped < return 301 /catalog/oborudovanie-velosiped/.
задан 20 дек 2022 в 12:13
46 показовРедирект в NGINX
Есть путь до страницы site.ru/krasivie-jenskie-trusi/ (Таких страниц много). Хочу сделать так что бы ссылка приняла вид site.ru/trusiki/ Я пробовал: location /krasivie-jenskie-trusi/ < return 301 /.
задан 20 дек 2022 в 8:33
Vue & robots.txt. Как скрыть разделы сайта и проверить результат?
Нужно скрыть раздел сайта www.site-name.com/#/en/terms от индексации поисковиками, остальные оставить доступными. Как можно это сделать и проверить результат? Сайт на Vue3 (Options API), используется .
задан 13 дек 2022 в 9:22
18 показовЧто лучше для SEO на сайте видео через плеер на своем хостинге или ссылка с ютуб?
Подскажите. Через плеер videojs я разместил свои обучающие ролики по английскому языку у себя на сайте. На ютуб размещать не спешу, потому что почти в каждом видео у меня популярные песни и отрывки из .
задан 12 дек 2022 в 11:02
SEO оптимизация и hreflang не работает для разных языков
Добрый день хотелось бы получить дельный совет по использованию hreflang для Google. Так же интересует вопрос по использованию атрибута x-default, на многих сайтах этот атрибут отсутствует. Всё .
задан 26 ноя 2022 в 17:05
CSR «поверх» SSR — имеет ли смысл?
Является ли нормальной практикой следующий подход: Отдать клиенту страницу, используя SSR (Server Side Rendering) (клиент получает html-документ с разметкой, готовой к отрисовке в браузере) Заменить .
задан 11 ноя 2022 в 13:43
26 показовПоисковые боты не обходят страницы
Применяю fetch, отправляю запрос в ответ получаю html код, который вставляю в блок. Метод get. Использую в качестве постраничной навигации. То есть отправлю запрос на url site.ru/page=1 и site.ru/.
задан 31 окт 2022 в 20:27
38 показовСайт проиндексирован в гугле, но не показывается в поиске
Столкнулся с проблемой после обновления сайта, сначала в поиске выходили старые страницы, которых уже нет. Запросил удаление, подождал, все исчезло, потом снова запросил индексирование, что бы .
задан 14 сен 2022 в 12:44
как убрать путь в nginx и сделать redirect?
Есть запрсы условно https://example.com/ru/paths или https://example.com/en/paths, после ru и en может буть любой путь и с параметрами и без. Вопрос как убрать ru и en и оставить например https://.
задан 8 сен 2022 в 3:52
15 30 50 на странице-
Важное на Мете
Связанные метки
Подписаться на ленту
Лента новых вопросов с меткой [seo]
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.21.1314
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
