Как убрать /hs/ и имя виртуального каталога из URL для http-сервиса (IIS)

13.12.22

Интеграция - WEB-интеграция

Переписывание входящего user-friendly URL (без hs) для понимания его http-сервисом 1С.

Если у вас есть http-сервис, который используется не для обмена с другим ПО, а, например, выводит страницы уже конечному пользователю под доменным именем, лишние знаки в адресной строке ему ни к чему. Для более серьезных Web-проектов, (если вы решили что Node.js, тащемто не нужен) предназначенных для работы вне узкого круга ограниченных людей вашего общения, лишние 2 сегмента URL могут и вовсе вызвать проблемы. Обычно это связано с первым попаданием на сайт и решается кодом 308 (Перемещено навсегда) для главной страницы "exemple.com" на "exemple.com/proj/hs/Index" (proj - имя виртуального каталога проекта в IIS), а там уже все ссылки и навигация прописываются с /hs/. Однако это не слишком элегантно, и может вызвать вопрос у пользователя или даже у 1С Москва.

Более красивым и дружелюбным решением будет убрать лишние сегменты, для чего в IIS используется URL Rewrite

Вообще URL Rewrite может переписывать и перенаправлять по заданным шаблонам любые адреса. Самыми базовыми и распространенными вариантами являются перенаправления с http на https, добавление www. и удаление последнего слэша в адресе. Must have

Устанавливается этот компонент, как и любой другой, из WPI 

 

 

Выглядит внутри он вот так. Тут есть 2 списка правил с разным предназначением и меню действий. Для создания нового нажмем Add Rule(s)...


 

Когда я увидел это меню впервые, я очень обрадовался, увидев уже готовый шаблон User-friendly URL (Удобный для пользователя адрес), но, как оказалось, это не для нас сделано и не для таких как мы, (правит только ASP адреса вида exemple.com/default.aspx?c=main&n=parametr) поэтому выбираем Blank rule (Пустое правило)

 

Тут все довольно просто, но опишу по полям (думаю, с русской версией по смыслу проблем возникнуть не должно):

Name - любой 

Requested URL - Matches the Pattern означает, что адрес попадает под правило, если соответствует шаблону ниже

Using - шаблон пишется регулярками, а здесь можно выбрать стандарт. (RE, WildCards) Для нас роли не играет: звездочка она везде звездочка.

Pattern - (.*) т.е. все адреса вообще.

Conditions - более детальные условия. Можно выбрать И (Match All) и ИЛИ (Match Any), если условий несколько. Сейчас здесь два правила:

{REQUEST_FILENAME} is Not a File и {REQUEST_FILENAME} is Not a Directory.

Они нужны для того, чтобы /hs/ по этому правилу не дописывалось к картинкам, стилям и пр. файлам, не связанным с 1С. 

Action -

Redirect перенаправляет на другую страницу, когда правило срабатывает, т.е перейдя на exemple.com пользователь увидит в адресной строке exemple.com/proj/hs/Index. Тоже вариант, но для нашей цели подходит хуже.

Rewrite переписывает адрес на стороне сервера, т.е. перейдя на exemple.com пользователь так и останется на exemple.com, но до 1С оно дойдет уже как proj/hs

Rewrite URL - шаблон изменения URL. в данном случае мы берем все, что идет после доменного имени {REQUEST_URL} и просто пихаем спереди [Каталог]/hs/

 

 

Теперь нам нужно добавить еще одно правило, ограничивающее доступ к адресам с hs. Сейчас при попытке зайти на exemple.com/proj/hs/Index к этому URL будет дописан еще один набор proj/hs, что приведет к ошибке. Мы можем блокировать доступ к изначально "правильным" адресам, чтобы такого не произошло

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



 

Если вам необходимо сохранить доступ и к новому и к изначальному вариантам, второе правило вам не нужно. Просто вместо (.*) в начале первого правила установите регулярку proj/hs/  и Requested URL в Does not match the pattern. Это будет означать, что правило применимо для всех адресов, не содержащих конструкцию proj/hs/.

 

Вообще механизм Rewrite URL очень удобный при решении проблем с маршрутами. Есть хорошая статья на Microsoft Learn (на английском), хотя в 1С область применения и ограничена.

IIS Web Веб http-сервисы Веб-разработка URL Веб-сервер Настройка Сервер

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    16050    13    18    

13

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    18089    10    15    

16

SALE! 10%

Автоматическая загрузка файлов (например, прайс-листов) из электронной почты, FTP, HTTP, их обработка и выгрузка на FTP (на сайт) и для других целей

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

28000 25200 руб.

28.05.2015    85310    26    51    

50

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    12973    32    8    

12

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    89569    163    217    

320
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. 7OH 69 06.12.22 09:55 Сейчас в теме
А под апач можете такой же пример сделать?
3. bayselonarrend 1243 13.12.22 08:45 Сейчас в теме
(1)Не знаю как, не работаю с апач
2. JohnyDeath 301 12.12.22 15:46 Сейчас в теме
Если оставить первое правило и не включать второе, то по идее пользователю, переходящему на адрес exemple.com/proj/hs/Index
будет дописано еще разок proj/hs, что в итоге отправит в 1С запрос на адрес /proj/hs/proj/hs/Index
Надо, наверное, паттерн-таки прописывать. Или я что-то недопонимаю?
4. bayselonarrend 1243 13.12.22 08:53 Сейчас в теме
(2) Да, все верно. При этом пользователя выкинет в 404. Можно использовать регулярку proj/hs/([_0-9a-z-]+) с условием Does not match the pattern в самом начале, тогда у пользователя будет возможность зайти и по exemple.com/proj/hs/Index и по exemple.com
Оставьте свое сообщение