Kay: Welche technischen Möglichkeiten gibt es zur URL Auflösung?

Es sind URLs nach folgendem Muster ohne Endungen (wie html, htm,shtml, php ect.) vorhanden.

xxx.yy/ohne-fruehstueck-ins-bett-gehen

xxx.yy/nur-morgens-benutzen

xxx.yy/warum-soll-diese-URL-nicht-benutzt-werden

Das soll erreicht werden:

Fall A

Der Inhalt der aufgerufenen HTML-Seite soll angezeigt werden.

Fall B

Die aufgerufene HTML-Seite wird gar nicht angezeigt, sondern leitet direkt auf eine dritte Webseite weiter.

Fall C

Der Inhalt der aufgerufenen HTML-Seite soll x Sekunden angezeigt werden und dann soll auf eine dritte Webseite weiter geleitet werden.

Fall A funktioniert mit dem IE 11. Chrome, FF und Opera brauchen da schon weitere Hinweise wie sie mit der HTML-Seite umgehen sollen.

Da es hier für sehr viele Lösungsansätze gibt, würde ich mich über viele verschiedene Möglichkeiten und Anregungen zur technischen Umsetzung freuen.

  1. hi,

    Es sind URLs nach folgendem Muster ohne Endungen (wie html, htm,shtml, php ect.) vorhanden.

    xxx.yy/ohne-fruehstueck-ins-bett-gehen

    xxx.yy/nur-morgens-benutzen

    xxx.yy/warum-soll-diese-URL-nicht-benutzt-werden

    Das soll erreicht werden:

    Fall A

    Der Inhalt der aufgerufenen HTML-Seite soll angezeigt werden.

    Sollte überhaupt kein Problem sein. Du kannst zB. alles per .htaccess auf ein rewrite-Skript umleiten und dann den entsprechenden Inhalt ausliefern.

    Fall B

    Die aufgerufene HTML-Seite wird gar nicht angezeigt, sondern leitet direkt auf eine dritte Webseite weiter.

    Auch das wäre mit dem Versand des entsprechenden Headers mit einem rewrite-Skript, auf das _alle_ seiten per .htaccess (mod_rewrite) geleitet werden, möglich

    Fall C

    Der Inhalt der aufgerufenen HTML-Seite soll x Sekunden angezeigt werden und dann soll auf eine dritte Webseite weiter geleitet werden.

    Das heißt ja, die Seite wird erstmal ausgeliefert und dann m.W. nach mit Javascript die location geändert. Mag sein, dass das auch über eine http-Header oder eine Angabe im html-head geht.

    Fall A funktioniert mit dem IE 11. Chrome, FF und Opera brauchen da schon weitere Hinweise wie sie mit der HTML-Seite umgehen sollen.

    Das kann nicht sein.

    mfg

    tami

    1. hi,

      hi,

      Es sind URLs nach folgendem Muster ohne Endungen (wie html, htm,shtml, php ect.) vorhanden.

      xxx.yy/ohne-fruehstueck-ins-bett-gehen

      xxx.yy/nur-morgens-benutzen

      xxx.yy/warum-soll-diese-URL-nicht-benutzt-werden

      Das soll erreicht werden:

      Fall A

      Der Inhalt der aufgerufenen HTML-Seite soll angezeigt werden.

      Sollte überhaupt kein Problem sein. Du kannst zB. alles per .htaccess auf ein rewrite-Skript umleiten und dann den entsprechenden Inhalt ausliefern.

      http://framework.zend.com/manual/1.12/de/project-structure.rewrite.html

      So landet, in dem Fall, alles erstmal in der index.php. Habe ich selbst auch schon so für ein kleines Webprojekt gemacht, klappt prima. Dem Browser ist das völlig egal. Der "merkt" davon garnix.

      mfg

      tami

    2. @@tami:

      nuqneH

      Sollte überhaupt kein Problem sein. Du kannst zB. alles per .htaccess auf ein rewrite-Skript umleiten und dann den entsprechenden Inhalt ausliefern.

      Man kann’s auch kompliziert machen. Oder einfach: content negotiation mit MultiViews.

      Qapla'

      --
      „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
      1. hi,

        @@tami:

        nuqneH

        Sollte überhaupt kein Problem sein. Du kannst zB. alles per .htaccess auf ein rewrite-Skript umleiten und dann den entsprechenden Inhalt ausliefern.

        Man kann’s auch kompliziert machen. Oder einfach: content negotiation mit MultiViews.

        Kapier ich auf die Schnelle nicht. Sieht komplizierter aus. Kommt doch vermutlich drauf an, was man machen will, oder? Mit meinem Beispiel will ich doch lediglich das alles über ein Script routen. ContentNegotiation spielt dabei keine Rolle.

        mfg

        tami

        1. Hallo,

          Man kann’s auch kompliziert machen. Oder einfach: content negotiation mit MultiViews.
          Kapier ich auf die Schnelle nicht. Sieht komplizierter aus.

          das mag so aussehen, ja.

          Kommt doch vermutlich drauf an, was man machen will, oder? Mit meinem Beispiel will ich doch lediglich das alles über ein Script routen. ContentNegotiation spielt dabei keine Rolle.

          Genau. Und mit MultiViews kannst du es dem Server überlassen, zu einer URL *ohne* Dateiendung das passende Dokument zu suchen, das intern durchaus eine Endung hat. Ein Request auf /info würde beispielsweise auf die Datei info.html abgebildet. Morgen kommst du auf die Idee, dass du in diesem Dokument doch noch ein paar PHP-Schnipsel brauchst - kein Problem: PHP-Code integrieren, existierende Datei in info.php umbenennen, fertig. Die Request-URL bleibt unverändert.

          Ob Redirect, Rewrite oder MultiViews - es kommt immer drauf an, was man genau erreichen will. Jede dieser Methoden ist in irgendeiner Situation die optimale.

          Ciao,
           Martin

          --
          Auch mit eckigen Radios kann man Rundfunk hören.
          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    3. Fall A funktioniert mit dem IE 11. Chrome, FF und Opera brauchen da schon weitere Hinweise wie sie mit der HTML-Seite umgehen sollen.

      Das kann nicht sein.

      mfg

      tami

      Chrome, Firefox und Opera melden sich mit Datei speichern oder öffnen mit.

      Hier die zwei Versionen von einfacher-test.

      <html>  
      <head>  
      <title>>einfacher Test</title>  
      </head>  
      <body>  
      <br>  
      <br>  
      <br>  
      <h1>einfacher Test</h1>  
      </body>  
      </html>
      
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
      <html lang="de">  
      <html>  
      <head>  
      <meta http-equiv="content-type" content="text/html; charset=utf-8">  
      <title>>einfacher Test</title>  
      </head>  
      <body>  
      <br>  
      <br>  
      <br>  
      <h1>einfacher Test</h1>  
      </body>  
      </html>
      

      Wenn ich speichern auswähle, ist genau der Inhalt der Serverdatei enthalten.

      Wenn ich "öffnen mit" anklicke und den selben Browser auswähle zum Öffnen, wird auch der richtige Inhalt, aus der temporär zwischengespeicherten Datei von der Festplatte, angezeigt.

      Irgend wie merkwürdig. Ist ein frisch aufgesetzter Nginx 1.5.12 Webserver.

      Liegt da nun an den Browsern oder an den Nginx Einstellungen? Oder gibt es noch eine nicht bedachte dritte Möglichkeit?

      1. Chrome, Firefox und Opera melden sich mit Datei speichern oder öffnen mit.

        Liegt da nun an den Browsern oder an den Nginx Einstellungen? Oder gibt es noch eine nicht bedachte dritte Möglichkeit?

        Was sagen denn die gelieferten Header?

        MfG
        bubble

        --
        If "god" had intended us to drink beer, he would have given us stomachs. - David Daye
        1. > Was sagen denn die gelieferten Header?

          MfG
          bubble

          Eine sehr gute Frage!

          Als Content-Type gibt es ein application/octet-stream zurück.

          Dann werde ich mal suchen, wo man das einstellen kann.

          1. @@Kay:

            nuqneH

            Dann werde ich mal suchen, wo man das einstellen kann.

            Die Fundstelle hatte ich dir bereits gezeigt.

            Qapla'

            --
            „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
            1. Die Fundstelle hatte ich dir bereits gezeigt.

              Qapla'

              Von der Thematik schon, aber nicht vom System.
              Der Webserver war falsch konfiguriert. Daher haben die seitenspezifischen Einstellungen nicht gewirkt. Da nützt es auch nichts, wenn die richtigen Einstellungen genommen wurden.

              Bei Nginx:
              http://nginx.org/en/docs/http/ngx_http_core_module.html?#types

  2. Moin,

    Es sind URLs nach folgendem Muster ohne Endungen (wie html, htm,shtml, php ect.) vorhanden.

    vorweg: Wie deine URLs aussehen, ob mit einer dateiähnlichen Endung oder ganz ohne, ist vollkommen gleichgültig und *sollte* keinerlei Einfluss darauf haben, wie der Browser damit umgeht. Entscheidend ist, was der HTTP-Header "Content-Type" für einen Typ ankündigt.

    Lediglich alte IEs sind berüchtigt dafür, dass sie den Content-Type-Header gern ignorieren und stattdessen versuchen, anhand der Nutzdaten den Typ selbst zu erraten. So wird beispielsweise ein IE6 auch stur HTML interpretieren, wenn er meint, das Dokument sähe nach HTML aus - auch wenn der Content-Type auf "text/plain" lautet.
    Ob Microsoft das inzwischen repariert hat und wenn ja, ab welcher Version, weiß ich nicht.

    Fall A
    Der Inhalt der aufgerufenen HTML-Seite soll angezeigt werden.

    Das wäre der Normalfall.

    Fall B
    Die aufgerufene HTML-Seite wird gar nicht angezeigt, sondern leitet direkt auf eine dritte Webseite weiter.

    Redirect (löst einen weiteren Request aus) oder mod_rewrite (leitet nur serverintern um).

    Fall C
    Der Inhalt der aufgerufenen HTML-Seite soll x Sekunden angezeigt werden und dann soll auf eine dritte Webseite weiter geleitet werden.

    Geht mit einem meta-Element (Refresh) im head, alternativ mit Javascript. Beides kann clientseitig deaktiviert sein, daher ist zusätzlich ein Link zur gewünschten Zielseite Pflicht, den man manuell auslösen kann.

    Fall A funktioniert mit dem IE 11. Chrome, FF und Opera brauchen da schon weitere Hinweise wie sie mit der HTML-Seite umgehen sollen.

    Was für weitere Hinweise? Das ist eigentlich der Standardfall, der immer funktionieren sollte.

    Ciao,
     Martin

    --
    Computer funktionieren grundsätzlich nicht richtig.
    Wenn doch, hast du etwas falsch gemacht.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(