Как правильно настроить Кириллический домен в Nginx с WildCard ?
сейчас рабочая конфигурация такая (домен для примера, не существующий):
# cat /etc/nginx/sites-available/xn--80aaelc0ahlnavr8c.xn--p1ai server < listen 80; server_name www.xn--80aaelc0ahlnavr8c.xn--p1ai .xn--80aaelc0ahlnavr8c.xn--p1ai; set $main_host 'xn--80aaelc0ahlnavr8c.xn--p1ai'; if ($host != $main_host) < rewrite ^(.*)$ http://$main_host$1 permanent; break; >access_log /var/log/nginx/xn--80aaelc0ahlnavr8c.xn--p1ai.access.log; error_log /var/log/nginx/xn--80aaelc0ahlnavr8c.xn--p1ai.error.log; root /var/www/$main_host/www; index index.php index.html index.htm; location / < try_files $uri $uri/ /index.php?$args; >location ~ \.php$ < include /etc/nginx/conf.d/fastcgi_params.conf; fastcgi_param SCRIPT_FILENAME /var/www/$main_host/www$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT /var/www/$main_host/www; fastcgi_param PHP_ADMIN_VALUE upload_tmp_dir=/var/www/$main_host/tmp/upload; fastcgi_param PHP_ADMIN_VALUE session.save_path=/var/www/$main_host/tmp/sessions; >location ~ /\. < deny all; access_log off; log_not_found off; >>
что и как поменять в конфиге домена nginx, чтобы работал вайлдкард на idn-домене?

tlito
17.11.15 12:13:09 MSK
Что именно не работает? Если задавать домен в IDN, то всё работает.
Oxana
( 19.11.15 22:20:37 MSK )
Ответ на: комментарий от Oxana 19.11.15 22:20:37 MSK

мне надо, чтобы все поддомены вели на основной домен сайт.рф если я добавляю звездочку в настройке хоста, то не только поддомены не обрабатываются, но и не работает основной домен! то есть так работает:
server_name www.xn--80aaelc0ahlnavr8c.xn--p1ai .xn--80aaelc0ahlnavr8c.xn--p1ai;
так не работает:
server_name www.xn--80aaelc0ahlnavr8c.xn--p1ai *.xn--80aaelc0ahlnavr8c.xn--p1ai;
так тоже не работает:
server_name *.xn--80aaelc0ahlnavr8c.xn--p1ai www.xn--80aaelc0ahlnavr8c.xn--p1ai;
tlito
( 19.11.15 22:36:12 MSK ) автор топика
Ответ на: комментарий от tlito 19.11.15 22:36:12 MSK
Обычно делают так:
server < server_name *.xn--80aaelc0ahlnavr8c.xn--p1ai; return 301 http://xn--80aaelc0ahlnavr8c.xn--p1ai$request_uri; >server
Что в логах ошибок с Вашей конфигурацией? Для nginx что IDN, что не IDN — все едино.
Oxana
( 20.11.15 02:57:17 MSK )
Ответ на: комментарий от Oxana 20.11.15 02:57:17 MSK

я сделал такую конфигурацию
/etc/nginx/sites-available# cat xn--80aaelc0ahlnavr8c.xn--p1ai server < listen 80; server_name *.xn--80aaelc0ahlnavr8c.xn--p1ai; return 301 http://xn--80aaelc0ahlnavr8c.xn--p1ai$request_uri; set $main_host 'xn--80aaelc0ahlnavr8c.xn--p1ai'; if ($host != $main_host) < rewrite ^(.*)$ http://$main_host$1 permanent; break; >access_log /var/log/nginx/xn--80aaelc0ahlnavr8c.xn--p1ai.access.log; error_log /var/log/nginx/xn--80aaelc0ahlnavr8c.xn--p1ai.error.log; root /var/www/$main_host/www; index index.php index.html index.htm; location / < try_files $uri $uri/ /index.php?$args; >location ~ \.php$ < include /etc/nginx/conf.d/fastcgi_params.conf; fastcgi_param SCRIPT_FILENAME /var/www/$main_host/www$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT /var/www/$main_host/www; fastcgi_param PHP_ADMIN_VALUE upload_tmp_dir=/var/www/$main_host/tmp/upload; fastcgi_param PHP_ADMIN_VALUE session.save_path=/var/www/$main_host/tmp/sessions; >location ~ /\. < deny all; access_log off; log_not_found off; >>
не работает. открывает вместо этого сайта дефолтный сайт: сообщение Welcome to nginx. в логах этого сайта — ничего. а в логах дефолтного сайта
55.55.55.88 - - [20/Nov/2015:15:02:26 +0200] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36" 55.55.55.88 - - [20/Nov/2015:15:04:06 +0200] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36" 55.55.55.88 - - [20/Nov/2015:15:04:08 +0200] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36"
Как разобраться с кириллицей в запросе?
Добрый день. Возникла проблема с отправкой запроса на сервер, а именно — то что он на кириллице. Да, действительно можно преобразовать URL в punycode, но вся беда в том, что при переходе через punycode, сайт сам запрашивает редерикт на основной кир. домен.
Мне необходимо отправить POST запрос на сервер, а сделать я этого не могу — постоянная ошибка 301, из-за того что сервер редериктит на кириллицу.
Есть ли способ как то обойти редерикт, или дать запросу понять кириллицу, чтобы редерикта не происходило?
POST /wp-admin/admin-ajax.php/ HTTP/1.1 Host: xn--1-7sbirdczi9n.xn--p1ai Authorization: Basic c2l0ZTR5b3U6c2l0Z Upgrade-Insecure_Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.99 Sec-Fetch-Dest: document Sec-Fetch-Mode: navigate Sec-Fetch-Site: cross-site Sec-Fetch-User: ?1
- Вопрос задан 24 дек. 2022
- 122 просмотра
5 комментариев
Простой 5 комментариев
Nginx проблема с кириллицей в product/search
![]()
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Войти
Уже зарегистрированы? Войдите здесь.
Больше способов поделиться.
Похожие публикации
Проблема з пошуком артикулів в модулі Ajax Live Search
Автор: Nimbly, 8 октября
Количество выявленных страниц в Search Console
Автор: zhizherinv, 16 октября
Search suggestion — поиск с автодополнением PRO
- поиск
- search
- (и ещё 5)
- 0 комментариев
- 34 675 просмотров
- sv2109
- 8 марта 2015
Шрифт Montserrat для кириллицы
Автор: Innokenty, 14 июля 2018
Search Admin — улучшенный поиск товаров в админке
- поиск
- товар
- (и ещё 1)
Сейчас на странице 0 пользователей
- Нет пользователей, просматривающих эту страницу.
Покупателям
- Оплата дополнений физическими лицами
- Оплата дополнений юридическими лицами
- Политика возвратов
Разработчикам
- Регламент размещения дополнений
- Регламент продаж и поддержки дополнений
- Виртуальный аккаунт автора
- Политика продвижения объявлений
- API каталога дополнений
- Урегулирование споров по авторским правам
Полезная информация
- Публичная оферта
- Политика возвратов
- Политика конфиденциальности
- Платежная политика
- Политика Передачи Персональных Данных
- Политика прозрачности
Последние дополнения
![]()
![]()
![]()
![]()
![]()
Движок интернет магазина OpenCart (ocStore) — официальный сайт OpenCartForum.com Powered by Invision Community
- Уже зарегистрированы? Войти
- Регистрация
Раздел покупок
ocStore
- Назад
- Официальный сайт
- Демо ocStore 3.0.3.2
- Демо ocStore 2.3.0.2.4
- Скачать ocStore
- Документация
- История версий ocStore
Шаблоны
OpenCart.Pro
- Создать.
Важная информация
На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.
Встраивание административного интерфейса через iframe
Административный интерфейс Webim можно встроить в страницы какого-либо иного веб-сервиса через iframe. Наиболее часто данная функция используется для встраивания в сторонний CRM с веб-интерфейсом. Такое использование повышает эффективность работы оператора, потому что ему больше не требуется держать открытыми две вкладки и переключаться между ними.
Настройка nginx
Для облачных клиентов, у которых сервис Webim расположен на серверах компании ООО «ВЕБИМ.РУ», требуется обратиться в службу технической поддержки Webim.
Для корректной настройки требуется выполнить следующие пункты:
-
В настройках веб-сервера nginx, который обслуживает ваш аккаунт Webim, нужно изменить настройки, отвечающие за выдачу контента через фреймы.
N.B. Необходимо редактировать настройки сервера, который обслуживает именно chat.mycompany.com , на котором расположен сервис Webim, а не CRM, в которую будет встроен iframe .
Найдите директорию с настройками nginx и создайте в этой директории файл iframe.conf . Путь зависит от особенностей начальной установки, например, он может выглядеть так:
/etc/nginx/conf/webim-config/common
add_header X-Frame-Options "ALLOW-FROM localhost https://crm.company.com"; add_header Content-Security-Policy "frame-ancestors localhost crm.company.com";
/etc/nginx/conf/webim-config/sites-available/webim.conf
Во все секции location , отвечающие за URL административного интерфейса, который Вы хотите сделать доступным в iframe , вставьте строку:
include /etc/nginx/webim-config/common/iframe.conf;
- /
- /l/o/check-spelling2
- ^(/l/v/(?:m/)?history|/l/[vo]/get-history|/internal/history/.+|/api/history/v[1-9]d*/.+)$
- ^/webim/images(/avatar|department_logo|visitor_avatars|ainvite_avatar|site_logo|site_preview).*.(jpg|jpeg|gif|png)$
- (get-image).php$
- ^/(?!x)(?!l)(?!ws)(?!webim)(?!image-robot)(?!images)(?!cd2)(?!cdn)(?!cd)(?!images)(?!robots.txt)(?!api).+.(ico|gif|png|jpg|css|js|htm|html)$
- ^/(images|css)(/.+)$
- ^/webim/(images|css)(/.+)$
- /l/(v|o)/download.*.(png|gif|jpe?g|webp|pdf|doc)$
- /l/(v|o)/download/.*?([^/]+)$
- /l/
- /webim/operator.+.php$
- .php$
- >.(jpg|jpeg|gif|png|css|js)$
- ^/api
Пример правильно отредактированной секции location :
Тег фрейма
Для того, чтобы на нужной странице работал iframe , в HTML-код страницы необходимо добавить тег iframe . Пример:
Данные, указываемые в теге iframe :
- В поле src требуется вписать URL РМО оператора:
- Пример URL для облачного аккаунта:
https://mycompany.webim.ru/agent/- Пример URL для аккаунта, размещенного не на серверах Webim:
https://chat.mycompany.com/agent/Взаимодействие между окнами
Для взаимодействия между CRM, в которую встраивается сервис, и Webim через iframe существует метод postMessage . Он позволяет отправлять между окнами события, содержащие объекты ( object ).
Для активации рассылки событий требуется добавить адреса страниц, на которые будут отправляться события, в конфигурации аккаунта:
- Если у вас облачный аккаунт, обратитесь в службу технической поддержки Webim для добавления в конфигурацию аккаунта URL на которые требуется отправлять события.
- Если сервис Webim размещен на ваших серверах, требуется добавить в поле operator_iframe_allowed_parent_origin в конфигурации аккаунта URL на которые требуется отправлять события.
Для того, чтобы сайт, в который встраивается Webim, мог получать события, на нём должен быть активен слушатель события message . При получении события также должен вызываться его обработчик, который реализует требуемые функции. Из соображений безопасности требуется проверять адрес, с которого приходит событие. Оно передается в поле origin . Пример реализации:
window.addEventListener("message", receiveMessage, false); function receiveMessage(event) < if (event.origin !== "origin_url") return Exception(); // . >Вместо origin_url должен быть указан URL РМО оператора. При несоответствии origin адресу РМО обработка этого события не должна продолжаться.
Для того, чтобы определить события, которые требуется передавать в CRM из Webim и в обратном направлении, следует обратиться к нашим менеджерам, чтобы подыскать решение, подходящее именно Вам.
Работа с внешними ссылками
Все внешние ссылки при работе с iframe будут продолжать открываться в новом окне, а не внутри iframe . Например, если посетитель отправит ссылку на внешний ресурс или картинку, находящуюся на внешнем ресурсе, нажатие на эту ссылку или картинку приведёт к открытию в браузере нового окна.