Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: jww am 28.05.12 - 12:47:28
-
Hallo,
ich habe zwar mit @WebDbName die Möglichkeit, in einem Hotspot auf andere Links in derselben DB zuzgreifen.
Was aber, wenn ich einen Link ersteklken will, der auf DEMSELBEN Server (==gleiche IP) auf eine ANDERE db weisen soll?
@myip oder sowas habe ich nicht gefunden. Was ist der Trick?
1000 Danb im Voraus
jwka
-
<a href="/replikid?openDatabase">
Gruß Roland
-
Danke!
Falls das mal jemnd suchen sollte und es weniger cryptisch lesen will:
In einem Hotspot wird allem, was mit "/" beginnt, die IP des Servers vorangestellt, sodass die die selbe Funktion erfüllt wie eine Funktion "myIP".
Aus
"/jeneDB.nsf/viewname"
wird im Browser
<ip>//jeneDB.nsf/viewname
jww
-
Das ist aber basis html und hat nix mit Lotus Notes zu tun... das nennt sich "relativer Pfad" in der Url...
-
Man sollte sich auch angewöhnen in einer Anwendung/Webseite die auf dem gleichen Server läuft nie den Servernamen an die Links dranhängen.
Also wenn ich z.B. im Browser die Seite "http://www.example.com/testdir1/index1.htm" offen habe und auf "index2.htm" im Verz. Testdir2 verlinken möchte, wäre es ziemlich schlecht, wenn ich den Link so schreibe:
<a href="http://www.example.com/testdir2/index2.htm">...</a>
Besser wäre da schon
<a href="/testdir2/index2.htm">...</a>
Und noch besser wäre
<a href="../testdir2/index2.htm">...</a>
Hintergrund:
Bei Variante 1 gibt es sofort Probleme, sobald die Seite über einen (Reverse-)Proxy / Load balacner oder Portweiterleitung erreichbar ist oder https anstatt http verwendet wird. (oder www.example.com gar nicht aufgelöst werden kann, weil man direkt über IP drauf zugreift)
Bei Variante 2 gibt es z.B. ein Problem, wenn ein Reverse-Proxy die Seite in ein Unterverzeichnis mapped.
Weiterhin hab ich festgestellt, dass
<a href="../testdir2/index2.htm">...</a>
nicht das gleiche ist wie
<a href="../Testdir2/index2.htm">...</a>
Notes unterscheidet zwar nicht zwischen Groß- und Kleinschreibung. Aber bei Basic-Authentication geht u.U. ein Authentifizierungsdialog auf.
Gruß
Roland
-
-
1) Also ein ordentlicher ReverseProxy davor macht ueblicheweise weder bei absoluten noch bei relativen Links Probleme - die koennen das. Ich wuerde allerdings bei absoluten Links nie den Servernamen hardcoded schreiben, sondern wenn, dann ueber Code setzen.
2) Auch https ist kein Problem, dafuer gibts “protocol-less” URLs (RFC 3986, section 4.2 (http://tools.ietf.org/html/rfc3986#section-4.2))
3) Wenn Du den DNS Namen nicht auf eine IP aufloesen kannst, hast Du ganz andere Probleme (und wenn Du keinen Hostnamen hast, kannst Du ja auch einfach die IP hinschrieben: "http://127.0.0.1")
Notes unterscheidet - auf ordenlichen Betriebssystemen - sehr wohl zwischen Groß- und Kleinschreibung, nur unter WIndows nicht. Daher ist auch hier wieder die RFC 3986, "6.2.2.1. Case Normalization" die definierende Instanz:
For all URIs, the hexadecimal digits within a percent-encoding triplet (e.g., "%3a" versus "%3A") are case-insensitive and therefore should be normalized to use uppercase letters for the digits A-F.
When a URI uses components of the generic syntax, the component syntax equivalence rules always apply; namely, that the scheme and host are case-insensitive and therefore should be normalized to lowercase. For example, the URI <HTTP://www.EXAMPLE.com/> is equivalent to <http://www.example.com/>. The other generic syntax components are assumed to be case-sensitive unless specifically defined otherwise by the scheme (see Section 6.2.3).
-
@m3
Hier hab ich leider schon mal ein tolles Konstrukt gesehen. Da wurde mit Putty eine Portweiterleitungen eingerichtet. Die entsprechende Seite ist dann z.B. unter http://127.0.0.1:8080/ erreichbar und wird von Putty dann zum eigentlichen Server (z.B. intra.firma.local) getunnelt. DNS bleibt da dann natürlich auf der Strecke.
Jegliche Codierung des Protokolls, Servers und Ports in den Links legt einem halt noch zusätzliche Steine in den Weg, so dass ich mir angewöhnt habe, dies von vornherein zu vermeiden....
Gruß
Roland
-
Sorry, aber diese Putty-Loesung ist ein geiler Hack, den ich aber in Produktion NIE einsetzen wuerde. Dass das die Haelfte der Features nicht geht, wundert mich nicht.
-
Das ist jetzt etwas off topic, aber in einem anderen Projekt (non-Notes/Webdesign) suche ich einen "Port-Router" (als Software, am liebsten Quelloffen zur Portierung auf eine Standalone Box mit nem Atmel Prozessor), der Port-Forwarding bedingungsabhängig machen kann, um mit wenigen Ports am (Internet-)Router intern weiterrouten (oder eben auch nicht) zu können.
Anwendungsfall ist im Bereich der Haussteuerung, es geht dabei um wenig Bandbreite, maximales stellt ein Videostream von einer Überwachungscamera dar.
Die Bedingungen müssen dabei nicht "on income" sein, sondern können - zeitlich entzerrt - als Event-gesteuerte Routinen, die dann die Routing Tables modifizieren, realisiert sein.
Kennt hier vielleicht jemnd eine solche Lösung?
1000 Dank
jww
-
@m3: Ich stimme dir zu, dass das Einrichten eines VPNs wohl die professionellere (aber auch aufwändigere) Lösung ist.
Portforwardings über ssh waren zu meinen Uni-Zeiten durchaus üblich und erfordern weniger Eingriff in ein System als die Installation eines VPN-Clients. (Putty benötigt keine Admin-Rechte am Client und als Endpoint wird nur eine Linux-Box + ssh-login im anderen Netz benötigt)
IBM verwendet dies z.B. auch beim Bereitstellen von Testumgebungen:
https://www-304.ibm.com/partnerworld/wps/static/pdf/Connecting_to_Your_VLP_System_A_User_Guide_V2.pdf
@jww: eine kleine Haussteuerung (=PV Datenlogger mit Atmega32 + ethersex firmware + rfm433 Funkbrücke) hab ich auch. Evtl. beschreibst du mal dein Vorhaben in einem eigenen Thread etwas genauer. (so ganz weiß ich nämlich noch nicht auf was du hinaus willst)
Gruß
Roland