User Tools

Site Tools


edit:url_auto_replace

Механизм автозамены URL

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

  1. Пользователь редактирует поле типа Визуальный редактор. При сохранении в базу следующие ссылки (части ссылок) будут заменены:
    • http:// + DNS + URL загрузки - на плейсхолдер <%=upload_url%>
    • http:// + DNS + Виртуальный путь в live - на плейсхолдер <%=site_url%>
    • http:// + Stage DNS + Виртуальный путь в stage - на плейсхолдер <%=site_url%>
  2. При выводе информации на сайт плейсхолдеры будут заменены:
    • <%=upload_url%> заменяется на поле URL загрузки из Свойств сайта Если установлена галочка Использовать абсолютный URL закачки, то к результату добавляется Префикс URL закачки.
    • <%=site_url%> заменяется на одно из полей Виртуальный путь из Свойств сайта (live или stage - в зависимости от режима, в котором был собран сайт). В случае использования параметра web.config UseAbsoluteSiteUrl и его значении, равном 1 к результату добавится http:// + DNS либо http:// + Stage DNS в зависимости от режима, в котором был собран сайт

Обратная замена плейсхолдеров на URL происходит не автоматически, а только при вызове функций QP7 API Field (для вывода информации с использованием Publishing Container) или FormatField (замена в произвольной строке), а также при использовании LINQ-to-SQL классов.

Таким образом, при сохранении информации Визуального редактора происходит замена абсолютных URL на плейсхолдеры, а при выводе информации на сайт плейсхолдеры заменяются на относительные URL. Обратная замена на абсолютные URL возможна, но для этого для site_url нужно установить в конфигурационном файле параметр UseAbsoluteSiteUrl в значение 1, для upload_url – задать в настройках сайта параметр Префикс URL закачки.

Discussion

Enter your comment
 
edit/url_auto_replace.txt · Last modified: 2012/06/21 15:43 by celutp