Маскирование .nsf в URL и HTML directory: domino\html

NetWood

Lotus Team
17.04.2008
565
96
BIT
174
Други! Чет я туплю.
Например, есть сайт test.online.
Default Mapping Rules
Home URL: /base.nsf
HTML directory: domino\html тут лежит локальная папка /test/ со всякими js и css
Icon directory: domino\icons

1. Если для него указать в <base href=" base.nsf"> и доступ к локальной папке domino\html <script src=" "></script> все замечательно работает, но в ссылках будет

2. Теперь маскируем базу правилом редиректа сайта
Если написать
<base href=" base/ ">
и
Description: test.nsf
Type of rule: Substitution
Incoming URL pattern: /newbase/*
Replacement pattern: /base.nsf/*
Также будет работать по ссылкам newbase/ Локальные папки со стилями и скриптами в domino\html подхватываются.

3. Теперь хотим базу открывать только по без лишнего base.
Пишем на странице <base href=" ">
и правило
Description: test.nsf
Type of rule: Substitution
Incoming URL pattern: /*
Replacement pattern: /base.nsf/*
НО при этом никак не пойму как написать путь в <link и в <script src=\"../test/js/test.js\"></script> к локальным папкам в директории domino\html? Оно все после слеша отсылает в базу и локальное не открывается.

То есть при полном маскировании как получить доступ к локальным файлам, например, по ссылке test.online/download/test.txt или test.online/test/fonts/PT+Sans.css для пункта 3?

Изучал и . Не помогло. В базе все работает. Доступа к локальным нет.
 

NetWood

Lotus Team
17.04.2008
565
96
BIT
174
РЕШЕНИЕ. Блин. Уже сколько на вебах и такое...

Домен test.online. База lotusbasename.nsf. Локальные файлы лежат в domino\html\localscripts

В поле $$HTMLHead общей подформы CommonFields нижеследующие собаки
Код:
rem {  =============   НАСТРОЙКА ДЛЯ МАСКИРОВАНИЯ .nsf в URL =====================};
basehref := "<base href=\"http://" + @GetHTTPHeader("HOST") + "/"+"\">"; rem {или Server_Name};

rem {для домена указываем <base href="http://test.online/"> };
rem {для тестового сервера указываем <base href="http://192.168.88.250/lotusbasename.nsf/"> };
basehref := @If(Server_Name="test.online";
"<base href=\"http://" + Server_Name + "/" + "\">";
"<base href=\"http://" + Server_Name + "/" + @WebDbName + "/" +"\">");

rem {substitution заглушко для отмены переадресации всего после /* дока сервера };
substitution := @If(Server_Name="test.online";
"../substitution/";
"../");

rem {в настройках сайтов интернета должны быть две настройки для сайта test.online
1.
Type of rule:
Substitution
Incoming URL pattern:
/substitution/*
Replacement pattern:
/*

Comments:
Обманываем сервер
js :="
<script src=\"../substitution/localscripts/js/modernizr.min.js\"></script>
<link href=\"../substitution/localscripts/css/rateit.css\" rel=\"stylesheet\" media=\"screen\">      
и получаем доступ к локальным файлам
http://test.online/substitution/download/test.txt

2.
Type of rule:
Substitution
Incoming URL pattern:
/*
Replacement pattern:
/lotusbasename.nsf/*

Comments:
Маскирует имя базы в URL
http://test.online/pages/swimwear?open
};

rem {  ============= END НАСТРОЙКА ДЛЯ МАСКИРОВАНИЯ .nsf в URL =====================};

sicon :="<link rel=\"shortcut icon\" href=\"/favicon.ico\""+" type=\"image/x-icon\">";

addcss :="<link href='css/commonstyle.css' rel='stylesheet' type='text/css'>"; rem {эти стили лежат в базе};
editorial :="<link href='"+substitution+"localscripts/css/main-editorial.css' rel='stylesheet'>"; rem {эти стили лежат на локале};

css :="<link href='"+substitution+"localscripts/css/bootstrap.css' rel='stylesheet'>
<link href='"+substitution+"localscripts/css/test.css' rel='stylesheet' media='screen'>
<link href='"+substitution+"localscripts/css/test-brown.css' rel='stylesheet' media='screen'>";
css := @Implode(css:editorial;@NewLine);

fonts :="
<link href=\"http://fonts.googleapis.com/css?family=PT+Sans\" rel=\"stylesheet\" type=\"text/css\">
<link href=\"http://fonts.googleapis.com/css?family=Montserrat\" rel=\"stylesheet\" type=\"text/css\">";
fonts :="
<link href=\""+substitution+"localscripts/fonts/PT+Sans.css\" rel=\"stylesheet\" type=\"text/css\">
<link href=\""+substitution+"localscripts/fonts/Montserrat.css\" rel=\"stylesheet\" type=\"text/css\">";

jquery :="<script src=\""+substitution+"localscripts/js/jquery-1.9.1.min.js\"></script>";
jquery_latest :="<script src=\"http://code.jquery.com/jquery-latest.min.js\"></script>";

js :="
<script src=\""+substitution+"localscripts/js/modernizr.min.js\"></script>
<script src=\""+substitution+"localscripts/js/imagesloaded.min.js\"></script>
<script src=\""+substitution+"localscripts/js/masonry.pkgd.min.js\"></script>  
<script src=\""+substitution+"localscripts/js/bootstrap.js\"></script>
<script src=\""+substitution+"localscripts/js/test.js\"></script>

<link href=\""+substitution+"localscripts/css/rateit.css\" rel=\"stylesheet\" media=\"screen\">      
<link href=\""+substitution+"localscripts/css/magnific-popup.css\" rel=\"stylesheet\">
<script src=\""+substitution+"localscripts/js/respond.min.js\"></script>
";

ie := "<!-- html5.js for IE less than 9 -->
<!--[if lt IE 9]>
    <script src='http://html5shim.googlecode.com/svn/trunk/html5.js'></script>
<![endif]-->
<!-- css3-mediaqueries.js for IE less than 9 -->
<!--[if lt IE 9]>
    <script src='http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js'></script>
<![endif]-->";



REM {Общий скрипт common.js};
common:="<script src=\"js/common.js\"></script>";
shop:="<script src=\"js/shop.js\"></script>";

shopjs :=@NewLine+@Implode(cookie:mgDialog:common:shop;@NewLine)+@NewLine;

@Implode(
viewport:
dk:
robots:
index:
resource:
sicon:
basehref :
fonts:
jquery:
js:
css:
bid:
shopjs;
@NewLine)+@NewLine

Тестирование.
В файле hosts тестового сервера пишем 127.0.0.1 test.online
На рабочей машине пишем 192.168.88.250 test.online

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

rinsk

Lotus Team
12.11.2009
1 156
126
BIT
43
То есть при полном маскировании как получить доступ к локальным файлам, например, по ссылке test.online/download/test.txt или test.online/test/fonts/PT+Sans.css для пункта 3?
Не понятно - а что доступ с корня для js <script src=\"/test/js/test.js\"></script> не работает разве в любом случае ?
 

NetWood

Lotus Team
17.04.2008
565
96
BIT
174
Не понятно - а что доступ с корня для js <script src=\"/test/js/test.js\"></script> не работает разве в любом случае ?
Нет. Он работает пока нет настройки substitution не сервере /* to /lotusbasename.nsf/*. Как только она появляется, все после домена отсылается в базу, и если там нет то 404.

То есть если файлы лежат только в базе, то это не нужно. Если нужен локал и тестовый сервер, то такой гимор.
 

rinsk

Lotus Team
12.11.2009
1 156
126
BIT
43
Он работает пока нет настройки substitution не сервере /* to /lotusbasename.nsf/*. Как только она появляется, все после домена отсылается в базу, и если там нет то 404.
Ну переопределять корень, это жестко конечно.
Почему бы не утащить все БД в каталог ? Тогда правило будет типа /site/* to /site/lotusbasename.nsf/*
и отдельное правило в виде / на /site/lotusbasename.nsf (без звезды)
А вообще - проще и надежнее поставить на фронт NGINX
 
  • Нравится
Реакции: lmike и NetWood

NetWood

Lotus Team
17.04.2008
565
96
BIT
174
Ну переопределять корень, это жестко конечно.
Таки NGINX стоит. Дело не в нем. /site/* to /site/lotusbasename.nsf/* определяет случай N2. Он рабочий и ок.
При этом URL всегда будет типа test.online/site/pages/id?openpage или test.online/site/form?openform с навсегда лишним /site/

Хочется конфет по случаю N3. test.online/pages/id?openpage или test.online/form?openform
substitution будет /* to /site/lotusbasename.nsf/*
 

NetWood

Lotus Team
17.04.2008
565
96
BIT
174
Ха. Не долго музыка играла. Если вставлено изображение или объект в RTF, то мой вариант с полным substitution не работает :(. Остается только /site/*
 

Gandliar

Lotus Team
16.02.2004
564
26
BIT
110
Я делаю немного по-другому
Во первых, обычно у меня страница это какой-то документ. Соответственно документ лежит в базе и доступен из какого-то вида.
Для главной страницы прописываем home url в конфигурации сайта /каталог/база/вид/ключ

substitution для остальных

/*/ -> /каталог/база/вид/*
/*/ */-> /каталог/база/вид/*~*
/*/ */*/-> /каталог/база/вид/*~*~*
/*/ */*/*/-> /каталог/база/вид/*~*~*~*
/files/ -> /каталог/база/

/favicon.ico -> /каталог/база/favicon.ico

если нужны ртфы

/каталог/база/ -> /каталог/база/

Думаю, что и файловую систему подключить не будет проблем. наверное как то так, не проверял

/images/ -> /domino/html/
 
  • Нравится
Реакции: NetWood

rinsk

Lotus Team
12.11.2009
1 156
126
BIT
43
Есть предположение что тильдочки - разделитель в композитном ключе:)
Но и на счёт мультизведочек - то же интересно:))
 

Gandliar

Lotus Team
16.02.2004
564
26
BIT
110
Есть предположение что тильдочки - разделитель в композитном ключе:)
Но и на счёт мультизведочек - то же интересно:))
именно так и есть

например должна быть страница

хост/metro/pobedy-pl/

в документе поле htmlKey metro~pobedy-pl

есть в базе вид htmlkey с полем htmlkey сортированным

/*/ */-> /каталог/база/htmlkey/*~*

и как раз находит четко
 
  • Нравится
Реакции: NetWood и rinsk

rinsk

Lotus Team
12.11.2009
1 156
126
BIT
43
именно так и есть

например должна быть страница

хост/metro/pobedy-pl/

в документе поле htmlKey metro~pobedy-pl

есть в базе вид htmlkey с полем htmlkey сортированным

/*/ */-> /каталог/база/htmlkey/*~*

и как раз находит четко
Век живи - век учись)
Ну красивый урл лично мне так себе, а вот красивый rest endpoint для агента уже интереснее :)
Причём не столько красивый, а конфигурируемый на конкретном сервере.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
466
Ну красивый урл лично мне так себе, а вот красивый rest endpoint для агента уже интереснее
ну дык рутинг для бд (через java) делаем и фсё ;)
а можно там прсто конфигу в дизайнере слепить
 

rinsk

Lotus Team
12.11.2009
1 156
126
BIT
43
ну дык рутинг для бд (через java) делаем и фсё ;)
а можно там прсто конфигу в дизайнере слепить
Ну эт уже пошла религия...
А иха тьма тьмущая - ls/ Java агент, osgi, xpage, Das, итп...
А тута поверх кроет эту братию единнообразно и монописуально)))
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
466
Ну эт уже пошла религия...
А иха тьма тьмущая - ls/ Java агент, osgi, xpage, Das, итп...
А тута поверх кроет эту братию единнообразно и монописуально)))
зависит от сложности поддержки
тут в 2-х местах как минимум лепить обработку
 

NetWood

Lotus Team
17.04.2008
565
96
BIT
174
в документе поле htmlKey metro~pobedy-pl
Не совсем понял. Тильдочка в имени поля? Так оно не дает сохранить с таким именем. Как это работает?
1587124717832.png
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
466

rinsk

Lotus Team
12.11.2009
1 156
126
BIT
43
зависит от сложности поддержки
тут в 2-х местах как минимум лепить обработку
Ну это зависит от того, как построен процесс. Например есть 2 варианта API на тесте. Один боевой, другой тестовый. Настройкой можно легко переключаться между конкретной реализацией. Сам кста пользуюсь - оч удобно. Причём один регион работает с одним апи, другой - с другим. А эндпоинт один :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!