Adrian O.: MultiViews mit Apache 1.3

Hallo allerseits!

Nachdem ich neulich ein Topic darüber gestartet habe, bin ich mittlerweile zu einem professionellen Webspace-Anbieter gewechselt, bei dem ich etwas mehr Freiheiten haben dürfte.
Ich habe jetzt herausgefunden, dass der Server auf Apache 1.3 läuft und deshalb meine alte htaccess noch nicht so verwendet werden kann:

Options +MultiViews
AddType application/xhtml+xml;charset=iso-8859-1;qs=0.999 .xhtml
AddType text/html;charset=iso-8859-1 .htm

Da ich mich so gut wie garnicht damit auskenne, wollte ich mich erkundigen, ob mir wer von euch erklären kann, wie ich das umschreiben könnte?
Das wäre super. :)

Mit freundlichen Grüßen,
Adrian

  1. Hallo allerseits!

    Nachdem ich neulich ein Topic darüber gestartet habe

    Sorry, ich sollte vielleicht noch den Link dazusetzen:
    http://forum.de.selfhtml.org/archiv/2008/5/t171391/

    Das Problem ist eben, dass jetzt ein 500 Internal Error aufgeworfen wird, wenn ich mit der aktuellen Konfiguration daran gehe.

    Mit freundlichen Grüßen,
    Adrian

  2. hallo,

    AddType application/xhtml+xml;charset=iso-8859-1;qs=0.999 .xhtml

    Das in Semikola eingezwängte "charset" hat da normalerweise nichts zu suchen. Warum willst du unbedingt die Verwendung einer Dateinamensendung *.xhtml erzwingen?
    Und wozu brauchst du diese AddType-Anweisungen überhaupt? Beide, die du angibst, sollten normalerweise bereits vorhanden sein - wenn auch nicht für *.xhtml. Was passiert denn, wenn du deine .htaccess völlig wegläßt?

    Vorläufig bekommst du nur einen 500er Error. Aber was soll ein Browser anzeigen, wenn er nun irgendeine *.xhtml geliefert bekommt?

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Hallo allerseits!

      AddType application/xhtml+xml;charset=iso-8859-1;qs=0.999 .xhtml

      Das in Semikola eingezwängte "charset" hat da normalerweise nichts zu suchen.

      Ah gut, vielleicht ist das schon mal ein Ansatz. Ich hab das ganze einer Anleitung entnommen und für meine persönlichen Zwecke angepasst - ich habe jedoch wie gesagt kaum Ahnung davon und mache deshalb wohl solange Fehler, bis sie mir angezeigt werden. ;-)

      Warum willst du unbedingt die Verwendung einer Dateinamensendung *.xhtml erzwingen?

      Ich möchte je nach Browser vernünftiges xhtml oder eben html ausliefern.
      Grosser Unterschied: Siehe Firefox und IE 6 etc.

      Was passiert denn, wenn du deine .htaccess völlig wegläßt?

      Ich habe meine Links auf "home" oder "index" gesetzt, damit er die jeweilige Datei dann raussucht, die passt.
      Primär wird dann erstmal nichts weiter als ein 404 ausgegeben werden - sicher kann ich die Website wieder zurückschreiben und alles als halbes xhtml ausgeben, aber ich wollte eben mal dazulernen.

      Aber was soll ein Browser anzeigen, wenn er nun irgendeine *.xhtml geliefert bekommt?

      Firefox behandelt die Datei dann z.B. als korrektes XHTML (inkl. <?xml> Anweisung etc.), beim IE würde dann garnichts mehr klappen.

      Mit freundlichen Grüßen,
      Adrian

      1. Hallo allerseits!

        AddType application/xhtml+xml;charset=iso-8859-1;qs=0.999 .xhtml

        Das in Semikola eingezwängte "charset" hat da normalerweise nichts zu suchen.

        Ah gut, vielleicht ist das schon mal ein Ansatz.

        Leider hat es nichts gebracht, diese Anweisung zu entfernen.
        Die Website ist jetzt so unter www.oeftiger.net anzutreffen...

        Mit freundlichen Grüßen,
        Adrian

    2. @@Christoph Schnauß:

      Das in Semikola eingezwängte "charset" hat da normalerweise nichts zu suchen.

      Der W3C-I18n-Artikel Einstellung der Zeichencodierungsangabe ('charset') in .htaccess sagt im Abschnitt Festlegung anhand der Datei-Endung etwas anderes.

      Live long and prosper,
      Gunnar

      --
      Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
      1. hallo Gunnar,

        Das in Semikola eingezwängte "charset" hat da normalerweise nichts zu suchen.
        Der W3C-I18n-Artikel Einstellung der Zeichencodierungsangabe ('charset') in .htaccess sagt im Abschnitt Festlegung anhand der Datei-Endung etwas anderes.

        Es scheint, als verwechselst du da etwas. "AddCharset" darf sehr wohl gebraucht werden. Aber nicht einfach nur "charset", und auf gar keinen Fall nach einem Semikolon innerhalb einer anderen Anweisung.

        Eine derart fehlerhafte .htaccess sollte zwingend zu einem internen Serverfehler führen.

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
        1. @@Christoph Schnauß:

          Der W3C-I18n-Artikel Einstellung der Zeichencodierungsangabe ('charset') in .htaccess sagt im Abschnitt Festlegung anhand der Datei-Endung etwas anderes.

          Es scheint, als verwechselst du da etwas.

          Wieso ich? Ich bin nicht der Autor des von mir erwähnten Artikels.

          "AddCharset" darf sehr wohl gebraucht werden.

          Natürlich darf es das.

          Aber nicht einfach nur "charset", und auf gar keinen Fall nach einem Semikolon innerhalb einer anderen Anweisung.

          Aber wo steht, dass 'AddType' nicht auf die im Artikel genannte Weise gebraucht werden darf?

          Live long and prosper,
          Gunnar

          --
          Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
          1. hallo Gunnar,

            wo steht, dass 'AddType' nicht auf die im Artikel genannte Weise gebraucht werden darf?

            Du unterstellst, daß ich derlei behauptet hätte. Das ist keine kluge Strategie. Du solltest besser fragen, wo steht, daß "AddType" auf genau diese Weise gebraucht werden darf, in der es der OP einsetzt.

            Grüße aus Berlin

            Christoph S.

            --
            Visitenkarte
            ss:| zu:) ls:& fo:) va:) sh:| rl:|
  3. Hallo Adrian,

    Options +MultiViews
    AddType application/xhtml+xml;charset=iso-8859-1;qs=0.999 .xhtml
    AddType text/html;charset=iso-8859-1 .htm

    Du haust schlichtweg drei völlig verschiedene Sachen zusammen.

    1. Direktive AddType hat folgende Syntax

    AddType MIME-type extension [extension]

    application/xhtml+xml;charset=iso-8859-1;qs=0.999 ist kein
       gültiges MIME-Type  application/xhtml+xml dagegen ist  ein
       gültiges MIME-Type. Eine Auswahl möglicher MIME-Types gibt
       es übrigens unter:
       http://www.iana.org/assignments/media-types/index.html

    2. Direktive AddCharset ist für die Zuweisung von Zeichensät-
       zen zuständig. Nebenbei: Es wird kein charset bei einem
       MIME-Type application/xhtml+xml in den Headern seitens des
       Apachen angegeben, weil diese sich aus dem Dokument selbst
       durch XML-Deklaration zwingend anzugeben sind.

    3. qs gibt es nur in Type maps Irgendwo anders, also auch
       (erst recht) nicht in der Serverkonfiguration, dies
       nichts zu suchen.

    Für Deine Belange Dürfte folgendes absolut ausreichen:

      
    <IfModule negotiation_module>  
       Options +MultiViews  
    </IfModule>  
    <IfModule mod_mime>  
       AddType application/xhtml+xml .xhtml  
       AddType text/html             .htm  
      
       <FilesMatch \.html>  
          AddDefaultCharset iso-8859-1  
       </FilesMatch>  
    </IfModule>  
    
    

    Eine Bitte also noch: Lies Dir die Dokumentation der Konfiguration des Apachen unter http://httpd.apache.org/docs/ sorgfältig durch und nutze die ausführliche Anleitung unter http://aktuell.de.selfhtml.org/artikel/server/apacheconf/index.htm!

    Gruß aus Berlin!
    eddi

    --
    Du hast Aufgaben bekommen!
    1. Hallo allerseits!

      application/xhtml+xml;charset=iso-8859-1;qs=0.999 ist kein
         gültiges MIME-Type  application/xhtml+xml dagegen ist  ein
         gültiges MIME-Type.

      Okay, darüber scheinen sich die Geister zu streiten. ;-) Ich hab es mal umgeändert und weggelassen, es ist hier eigentlich auch nicht sinnvoll, denke ich.

      1. qs gibt es nur in Type maps Irgendwo anders, also auch
           (erst recht) nicht in der Serverkonfiguration, dies
           nichts zu suchen.

      Oh, dann hatte ich das falsch zugeordnet, bzw. falsch aus dem Artikel übernommen.. Der Autor sollte sich dann vielleicht auch noch mal Gedanken darüber machen. ;-)

      Für Deine Belange Dürfte folgendes absolut ausreichen:

      <IfModule negotiation_module>
         Options +MultiViews
      </IfModule>
      <IfModule mod_mime>
         AddType application/xhtml+xml .xhtml
         AddType text/html             .htm

      <FilesMatch .html>
            AddDefaultCharset iso-8859-1
         </FilesMatch>
      </IfModule>

        
      Habe ich erst umgeschrieben nach deinen Anweisungen, dann hat es nicht geklappt, dann hab ich es direkt inkl. den If-Befehlen übernommen, dann ging es - warum auch immer.  
      Nun gibt er mir einen 404, wenn ich z.B. "home" aufrufe, für das "home.xhtml" und "home.htm" vorhanden sind.  
        
      
      > Eine Bitte also noch: Lies Dir die Dokumentation der Konfiguration des Apachen unter <http://httpd.apache.org/docs/> sorgfältig durch  
        
      Habe ich auch getan, nur leider habe ich als Newby nicht gerade alles perfekt aufnehmen können. Aber man lernt ja dazu. :-)  
        
      Mit freundlichen Grüßen,  
      Adrian
      
      1. hallo Adrian,

        application/xhtml+xml;charset=iso-8859-1;qs=0.999 ist kein
           gültiges MIME-Type  application/xhtml+xml dagegen ist  ein
           gültiges MIME-Type.
        Okay, darüber scheinen sich die Geister zu streiten.

        Nein, da gibt es keinerlei Streit. Edgar hat vollkommen recht.

        es ist hier eigentlich auch nicht sinnvoll, denke ich.

        Vermutlich sogar völlig überflüssig.

        Oh, dann hatte ich das [...] falsch aus dem Artikel übernommen.

        Welchen Artikel meinst du?

        ... hab ich es direkt inkl. den If-Befehlen übernommen, dann ging es - warum auch immer.

        <IfModule> legt die Bedingung fest, unter der deine Anweisungen überhaupt wirksam werden können. Du solltest also prüfen, welche Module dir überhaupt zur Verfügung stehen.

        Nun gibt er mir einen 404, wenn ich z.B. "home" aufrufe, für das "home.xhtml" und "home.htm" vorhanden sind.

        Der Serverstatuscode 404 sagt aus, daß die gewünschte Ressource nicht gefunden wurde. Hast du eventuell noch mit mod_rewrite experimentiert? Wenn du "home" aufrufst, kann das im Browser ja nur in der Form http://example.test/home geschehen. Dann landest du natürlicherweise in deinem "home"-Verzeichnis, aber mit den beiden Dateien hat das noch gar nichts zu tun. Es sei denn, du hättest per DirectoryIndex festgelegt, daß beide Dateinamen als Indexdateien aufgerufewn werden können.

        Eine Bitte also noch: Lies Dir die Dokumentation der Konfiguration des Apachen unter http://httpd.apache.org/docs/ sorgfältig durch
        Habe ich auch getan, nur leider habe ich als Newby nicht gerade alles perfekt aufnehmen können.

        Die Frage ist, was du denn gerne überhaupt erreichen möchtest. Du hast eine Anspielung auf mod_negotiation verlauten lassen. Was du als Beispiel demonstrierst, hat aber mit dem, was das Aushandeln alternativer Inhalte angeht, bisher so gut wie gar nichts zu tun.

        Und mit Verlaub: nur _sehr_ wenige ISPs setzen heute immer noch Apache 1.3.x ein. Über die Gründe (Konservativismus oder ganz einfach Entwicklung verschlafen) mag ich nicht spekulieren.

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
        1. @@Christoph Schnauß:

          Nun gibt er mir einen 404, wenn ich z.B. "home" aufrufe, für das "home.xhtml" und "home.htm" vorhanden sind.

          Wenn du "home" aufrufst, kann das im Browser ja nur in der Form http://example.test/home geschehen.

          Richtig – bis hierher.

          Dann landest du natürlicherweise in deinem "home"-Verzeichnis

          Nein!

          aber mit den beiden Dateien hat das noch gar nichts zu tun.

          Natürlich hat es das.

          Bei http://example.test/home.xhtml soll die Datei home.xhtml ausgeliefert werden.

          Bei http://example.test/home.htm soll die Datei home.htm ausgeliefert werden.

          Bei
          Bei http://example.test/home soll diejenige der beiden Dateien ausgeliefert werden, die dem Client besser passt (an 'application/xhtml+xml'-Gourmets home.xhtml; an 'text/html'-Gourmands home.htm).

          Was ist dir daran unverständlich? Von 'MultiViews' und content negotiation hast du doch schonmal gehört?

          Es sei denn, du hättest per DirectoryIndex festgelegt, daß beide Dateinamen als Indexdateien aufgerufewn werden können.

          Äh, warum bringst du hier 'DirectoryIndex' ins Spiel? Kann es sein, dass du da etwas verwechselst?

          Live long and prosper,
          Gunnar

          --
          Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
        2. Hallo allerseits!

          Nein, da gibt es keinerlei Streit. Edgar hat vollkommen recht.

          Gut, ich lasse es einfach und übernehme die vorgeschlagene Version.

          es ist hier eigentlich auch nicht sinnvoll, denke ich.

          Vermutlich sogar völlig überflüssig.

          Das wollte ich damit ausdrücken. ;-) Danke.

          Oh, dann hatte ich das [...] falsch aus dem Artikel übernommen.

          Welchen Artikel meinst du?

          Habe ich unten in einem Post angegeben.

          Nun gibt er mir einen 404, wenn ich z.B. "home" aufrufe, für das "home.xhtml" und "home.htm" vorhanden sind.

          Der Serverstatuscode 404 sagt aus, daß die gewünschte Ressource nicht gefunden wurde. Hast du eventuell noch mit mod_rewrite experimentiert?

          Nein, hab ich nicht. Meine htaccess sieht im Moment genau so aus, wie Eddie es vorgeschlagen hat.

          Wenn du "home" aufrufst, [...]

          Das hat Gunnar richtig erkannt, genau so wollte ich das haben.

          Die Frage ist, was du denn gerne überhaupt erreichen möchtest. Du hast eine Anspielung auf mod_negotiation verlauten lassen. Was du als Beispiel demonstrierst, hat aber mit dem, was das Aushandeln alternativer Inhalte angeht, bisher so gut wie gar nichts zu tun.

          Ich möchte für XHTML-fähige Browser die XHTML-Version meiner Dokumente ausgeben und für andere Browser wie z.B. den alten IE dann die HTML-Version.
          Nicht mehr und nicht weniger als das war mein Ziel - es scheint aber eine Riesendiskussion aufgeworfen zu haben. ;-)

          Und mit Verlaub: nur _sehr_ wenige ISPs setzen heute immer noch Apache 1.3.x ein. Über die Gründe (Konservativismus oder ganz einfach Entwicklung verschlafen) mag ich nicht spekulieren.

          Ja, da kann ich nun leider wirklich nichts daran ändern. Aber das Angebot war recht günstig und ein Kollege von mir hat noch nie Probleme mit dem Anbieter gehabt. Aber ich denke, grosse Einschränkungen dürfte das nicht mit sich bringen, oder?

          Also - ich erhalte besagten 404 Error, wenn ich "home" aufrufe, anstatt dass er je nach Anfrage home.xhtml oder home.htm ausliefert. D.h. das eigentliche Ziel habe ich jetzt verfehlt, obwohl meine htaccess jetzt syntaxmässig stimmen dürfte.. Oweia ^^

          Mit freundlichen Grüßen,
          Adrian

          1. Warte bitte ab, ich erstelle nachher eine etwas verbesserte Version hier als -best practice- im Umgang mit application/xml+xhtml ein. Dazu benötige ich aber noch einige Tests und notfalls geht noch ein bug report in Form einer Anregung an apache raus.

      2. Yerf!

        Habe ich erst umgeschrieben nach deinen Anweisungen, dann hat es nicht geklappt, dann hab ich es direkt inkl. den If-Befehlen übernommen, dann ging es - warum auch immer.

        Klingt danach, dass eines der benötigten Module fehlt...
        (Durch die IFs werden die Befehle übersprungen, wenn das zugehörige Modul nicht vorhanden ist)

        Gruß,

        Harlequin

        --
        <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
        1. Hallo allerseits!

          Klingt danach, dass eines der benötigten Module fehlt...

          Uff, sicher, daran wirds liegen.
          Wie soll ich denn das um Himmels Willen dem Admin beibringen :D

          Mit freundlichen Grüßen,
          Adrian

    2. @@Edgar Ehritt:

      AddType application/xhtml+xml;charset=iso-8859-1;qs=0.999 .xhtml
      AddType text/html;charset=iso-8859-1 .htm

      Du haust schlichtweg drei völlig verschiedene Sachen zusammen.

      Siehe meine Antwort auf Christoph.

      Nebenbei: Es wird kein charset bei einem MIME-Type application/xhtml+xml in den Headern seitens des Apachen angegeben, weil diese sich aus dem Dokument selbst durch XML-Deklaration zwingend anzugeben sind.

      Das ist wohl Unfug! Wo willst du das herausgelesen haben?

      Die XML-Deklaration ist optional. ([22] in [XML §2.8])

      1. qs gibt es nur in Type maps Irgendwo anders […] [hat] dies nichts zu suchen.

      'qs' gibt es auch im 'Accept'-Header, im 'Accept-Language'-Header usw.

      Live long and prosper,
      Gunnar

      --
      Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
      1. Hallo erstmal!

        AddType application/xhtml+xml;charset=iso-8859-1;qs=0.999 .xhtml
        AddType text/html;charset=iso-8859-1 .htm

        Du haust schlichtweg drei völlig verschiedene Sachen zusammen.

        Siehe meine Antwort auf Christoph.

        Ja, und? Nun?
        Jedenfalls ist sowohl 'application/xhtml+xml;charset=iso-8859-1;qs=0.999' als auch 'text/html; charset=UTF-8' kein gültiges MIME-Type. Das der Apache daraus den Header 'Content_Type' erstellt, ohne weitere Analyse zu betreiben, ist nur sehr sehr kurzsichtig gedacht. Wenn Du mir anhand des Quellcodes vom Apachen in allen drei Publikationsversionen zeigst, dass dies nicht nur möglich ist, sondern auch konsequenzenlos bei der Verarbeitung der intern vom Server geführten Tabelle (ap_get_table()) bleibt, die für andere Module (API) wichtig ist, winke ich zukünftig auch mit dem Fähnchen.

        Nebenbei: Es wird kein charset bei einem MIME-Type application/xhtml+xml in den Headern seitens des Apachen angegeben, weil diese sich aus dem Dokument selbst durch XML-Deklaration zwingend anzugeben sind.

        Das ist wohl Unfug! Wo willst du das herausgelesen haben?
        Die XML-Deklaration ist optional. ([22] in [XML §2.8])

        Unfug ist es nicht und sich so vorschnell so plumper rhetorischer Mittel zu bedienen, ist weit unter Deinem Niveau!

        http://www.edition-w3c.de/TR/2002/REC-xhtml1-20020801/#heading-3� (5.)

        "Zwingend" muss ich also in dem Sinne zurück nehmen, weil es eben heißt: "Den Autoren von XHTML-Dokumenten wird jedoch sehr empfohlen, in all ihren Dokumenten XML-Deklarationen zu verwenden." Aber in Verbindung mit dem Verhalten des Apachen, für MIME-Type application/xhtml+xml kein charset im Content-Type-Header anzulegen, ist dies -best practice-.

        1. qs gibt es nur in Type maps Irgendwo anders […] [hat] dies nichts zu suchen.

        'qs' gibt es auch im 'Accept'-Header, im 'Accept-Language'-Header usw.

        RFCs 2295 - 19.1 Computing overall quality values, 2296 - 3.3 Computing overall quality values

        qs ist eine RFC-spezifizierte Variable zur Berechnunsdemonstration; q gibt es in HTTP-Headern!

        Gruß aus Berlin!
        eddi

        --
        Du hast Aufgaben bekommen!
        1. @@Edgar Ehritt:

          Jedenfalls ist sowohl 'application/xhtml+xml;charset=iso-8859-1;qs=0.999' als auch 'text/html; charset=UTF-8' kein gültiges MIME-Type. Das der Apache daraus den Header 'Content_Type' erstellt, ohne weitere Analyse zu betreiben, ist nur sehr sehr kurzsichtig gedacht. Wenn Du mir anhand des Quellcodes vom Apachen in allen drei Publikationsversionen zeigst, dass dies nicht nur möglich ist, sondern auch konsequenzenlos bei der Verarbeitung der intern vom Server geführten Tabelle (ap_get_table()) bleibt, die für andere Module (API) wichtig ist, winke ich zukünftig auch mit dem Fähnchen.

          Ich hatte bewusst vorsichtig formuliert: „Der W3C-I18n-Artikel Einstellung der Zeichencodierungsangabe ('charset') in .htaccess sagt […] etwas anderes.“ Nicht „... sagt es richtig.“

          Heißt das, die Angabe von 'charset' in 'AddType' funzt zwar, verlassen sollte man sich aber nicht darauf, weil es nicht der Apache-Spezifikation entspricht?

          Sollte ich den Autor des Artikels mal darauf hinweisen?

          http://www.edition-w3c.de/TR/2002/REC-xhtml1-20020801/#heading-3� (5.)

          "Zwingend" muss ich also in dem Sinne zurück nehmen, weil es eben heißt: "Den Autoren von XHTML-Dokumenten wird jedoch sehr empfohlen, in all ihren Dokumenten XML-Deklarationen zu verwenden."

          Die Rechnung wurde ohne den Wirt^W^Weinen gewisse Clienten gemacht: IE < 7. Da diese bei XML-Deklaration in den Quirks-Modus schalten, war diese Empfehlung in der XHTML-Spezifikation noch nie wirklich sinnvoll.

          Aber in Verbindung mit dem Verhalten des Apachen, für MIME-Type application/xhtml+xml kein charset im Content-Type-Header anzulegen, ist dies -best practice-.

          Warum sollte man den Server nicht dazu bewegen, für XHTML als 'application/xhtml+xml' die Zeichencodierung im Header anzugeben?

          qs ist eine RFC-spezifizierte Variable zur Berechnunsdemonstration; q gibt es in HTTP-Headern!

          Was ein kleines 's' für einen Unterschied macht. Den hatte ich in der Tat übersehen.

          Live long and prosper,
          Gunnar

          --
          Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
          1. Re:

            Ich hatte bewusst vorsichtig formuliert: „Der W3C-I18n-Artikel Einstellung der Zeichencodierungsangabe ('charset') in .htaccess sagt […] etwas anderes.“ Nicht „... sagt es richtig.“

            OK

            Heißt das, die Angabe von 'charset' in 'AddType' funzt zwar, verlassen sollte man sich aber nicht darauf, weil es nicht der Apache-Spezifikation entspricht?

            Ja.

            Sollte ich den Autor des Artikels mal darauf hinweisen?

            Das musst Du wissen. Ich jedenfalls habe im virtuellen und direkt zwischenmenschlichen Bereich lernen müssen, dass man einem Pferd, das von hinten aufgezäumt ist, besser keine Zähne ziehen sollte - falls Du verstehst, was ich meine. ;)

            http://www.edition-w3c.de/TR/2002/REC-xhtml1-20020801/#heading-3� (5.)
            [contra]
            [re]

            hingenommen :\

            Warum sollte man den Server nicht dazu bewegen, für XHTML als 'application/xhtml+xml' die Zeichencodierung im Header anzugeben?

            Hier liegt meiner Ansicht nach ein Verständnisfehler vor. Für gewöhnlich (text/plain && text/html) nutzt man zur Festsetzung der Zeichencodierung AddDefaultCharset, MIME-type application/xhtml+xml bleibt dabei außen vor. (Das aber war genau mit meinem Es wird kein charset bei einem MIME-Type application/xhtml+xml in den Headern seitens des Apachen angegeben gemeint.) Üblich ist es, mittels AddCharset zu konfigurieren.

            qs ist eine RFC-spezifizierte Variable zur Berechnunsdemonstration; q gibt es in HTTP-Headern!
            Was ein kleines 's' für einen Unterschied macht. Den hatte ich in der Tat übersehen.

            Wenn man bedenkt, dass q nur in REQUEST-Headern gesetzt wird, kommt es auf das s an und für sich gar nicht mehr so sehr an. ;)

            (So; nun müsste der Zaum richtig sitzen...) ;-P

            Gruß aus Berlin!
            eddi

            --
            Du hast Aufgaben bekommen!
            1. Hallo allerseits!

              qs ist eine RFC-spezifizierte Variable zur Berechnunsdemonstration; q gibt es in HTTP-Headern!
              Was ein kleines 's' für einen Unterschied macht. Den hatte ich in der Tat übersehen.

              Wenn man bedenkt, dass q nur in REQUEST-Headern gesetzt wird, kommt es auf das s an und für sich gar nicht mehr so sehr an. ;)

              Jetzt habt ihr mich komplett verwirrt! ;-)
              Gibt es nun eine Möglichkeit, die "Qualitätsangabe" des xhtml-types etwas herunterzusetzen, sodass Clients dann eher die HTML Version nehmen - eben nur die nicht, die die XHTML sowieso bevorzugen, wie z.B. der Firefox?

              Mit freundlichen Grüßen,
              Adrian

            2. ... Für gewöhnlich (text/plain && text/html) nutzt man zur Festsetzung der Zeichencodierung AddDefaultCharset, MIME-type application/xhtml+xml bleibt dabei außen vor.

              Bug plus Fix ist unter Bug 35049 einzusehen. Es wird um Kommentierung und positives voting gebeten, um die Anfrage zu beschweren!

              1. hallo,

                Es wird um Kommentierung und positives voting gebeten, um die Anfrage zu beschweren!

                [x] done.

                Grüße aus Berlin

                Christoph S.

                --
                Visitenkarte
                ss:| zu:) ls:& fo:) va:) sh:| rl:|
              2. hallo,

                Es wird um Kommentierung und positives voting gebeten, um die Anfrage zu beschweren!

                Öhm ... Nachsatz: positives voting ist erfolgt, Kommentierung aber noch nicht. So schnell kriege ich einen Testlauf nicht zustande, bei dem ein nach deinem Vorschlag neu kompilierter Apache läuft (noch dazu zur Gegenprüfung auch unter Windows). Folgt aber noch. Allerdings: du hast den "Bug" nicht für Apache 1.3.x eingetragen, sondern für eine höhere Apache-Version. Hast du das genügend geprüft?

                Andererseits: ich habe dir für deinen Beitrag oben zwar einen "hilfreich"-Punkt vergeben (und das sogar ernst gemeint), halte aber den Ansatz von Adrian, mit Hilfe von content_negotiation lediglich zwischen *.xhtml und *.html differenzieren zu wollen, komplett für falsch. Das sind in meinen Augen keine unterschiedlichen _Inhalte_, sondern unterschiedliche _Formen_. Und dafür braucht man kein content_negotiation.

                Ich habe mir deinen Beitrag trotzdem gebookmarkt (was ich ausgesprochen selten mache), weil er ein paar Hinweise bzw. Ideen enthält, die ich möglicherweise bei der längst überfälligen Neufassung/Modernisierung meines Apache-Artikels berücksichtigen sollte (hab dir dazu auch eine kleine mail geschrieben).

                Grüße aus Berlin

                Christoph S.

                --
                Visitenkarte
                ss:| zu:) ls:& fo:) va:) sh:| rl:|
                1. @@Christoph Schnauß:

                  halte aber den Ansatz von Adrian, mit Hilfe von content_negotiation lediglich zwischen *.xhtml und *.html differenzieren zu wollen, komplett für falsch. Das sind in meinen Augen keine unterschiedlichen _Inhalte_, sondern unterschiedliche _Formen_. Und dafür braucht man kein content_negotiation.

                  Dir scheint immer noch nicht ganz klar zu sein, was Inhaltsvereinbarung (content negotiation) bedeutet. (Vielleicht kann dieser Artikel da etwas nachhelfen.)

                  Natürlich bedeutet es NICHT, das sich unterschiedliche _Inhalte_ hinter einem URI verbergen. Ein URI referenziert eine Ressource, also _einen_ bestimmten Inhalt.

                  Inhaltsvereinbarung sorgt dafür, dass dieser Inhalt an den Client in der diesem am besten passenden Repräsentation (_Form_) geschickt wird. Und das in verschiedenen Dimensionen: Sprache, Format (bspw. PDF oder eben HTML oder XHTML), ...

                  Live long and prosper,
                  Gunnar

                  --
                  Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
                2. Re:

                  ... Allerdings: du hast den "Bug" nicht für Apache 1.3.x eingetragen, sondern für eine höhere Apache-Version. Hast du das genügend geprüft?

                  Das habe ich bewusst getan, ja. Ich bin in guter Hoffnung, dass die Developer vom Apachen sich für jede Version diese sehr einfache Anpassung dennoch annehmen werden. Warten wir es ab.

                  Andererseits: ich habe dir für deinen Beitrag oben zwar einen "hilfreich"-Punkt vergeben (und das sogar ernst gemeint),...

                  Huch, danke! ;)

                  Ich habe mir deinen Beitrag trotzdem gebookmarkt (was ich ausgesprochen selten mache), weil er ein paar Hinweise bzw. Ideen enthält, die ich möglicherweise bei der längst überfälligen Neufassung/Modernisierung meines Apache-Artikels berücksichtigen sollte (hab dir dazu auch eine kleine mail geschrieben).

                  Alles weitere dann per mail.

                  Gruß aus Berlin!
                  eddi

                3. Hallo allerseits!

                  [...] halte aber den Ansatz von Adrian, mit Hilfe von content_negotiation lediglich zwischen *.xhtml und *.html differenzieren zu wollen, komplett für falsch. Das sind in meinen Augen keine unterschiedlichen _Inhalte_, sondern unterschiedliche _Formen_. Und dafür braucht man kein content_negotiation.

                  Nun gut, es scheint eine wenige, aber dennoch ein bisschen verbreitete Methode zu sein, es so zu machen. Gehen wird es wohl auf jeden Fall, wenn ich dich jetzt richtig verstehe, geht es dir um die Mentalität dahinter.
                  Ich würde in diesem Fall Gunnar schon zustimmen - aber wenn du anderer Meinung bist, sag doch einmal, was du als Alternative zum Content-negotiation machen würdest, eben um genau für die unterschiedlichen Browser zwischen XHTML und HTML zu unterscheiden?

                  Mit freundlichen Grüßen,
                  Adrian

  4. Hallo allerseits!

    Hier übrigens mal der Link, von dem ich diese Syntax her hatte - das war der erste Artikel zu Content Negotiation, den ich gelesen habe:
    http://perishablepress.com/press/2008/03/26/content-negotiation-for-xhtml-documents-via-php-and-htaccess/

    Mit freundlichen Grüßen,
    Adrian

  5. Davon ausgehend, dass zwei resourcen der Form xy.html und xy.xhtml vorliegen und mit http://abc.jk/xy abgerufen werden, schöpft folgende Konfiguration alle Möglichkeiten aus, um multiple Darbietung zu gewährleisten:

      
    <IfModule negotiation_module>  
       Options +MultiViews  
    </IfModule>  
    <IfModule !negotiation_module>  
       <IfModule rewrite_module>  
           RewriteEngine On  
           RewriteCond   %{SCRIPT_FILENAME} !-f  
           RewriteCond   %{HTTP_ACCEPT}     !.*application/xhtml\+xml.* [NC]  
           RewriteRule   ^(.*)$             $1.html                     [L]  
      
           RewriteCond   %{SCRIPT_FILENAME} !-f  
           RewriteRule   ^(.*)$             $1.xhtml                    [L]  
       </IfModule>  
    </IfModule>  
    
    ~~~###########################################  
      
    Für die Faulen (alias "die Cleveren"), die keine zwei Formatversionen haben und die Eigenschaft, dass Versionen einer nicht weiter nennenswerten Saftware (IE) mit application/xml+xhtml nicht zurande kommen, gibt es noch ein quick an dirty, zu dem anzumerken bleibt, dass hier keine entsprechenden Header einer negotiation gesetzt werden. Desweiteren wird keine Rücksicht auf die äußerst unwahrscheinliche Gegebenheit genommen, dass der client application/xhtml\+xml;q=0.0 angibt. Dies ist aber bei den üblichen Browsern und dessen Headern mir noch nicht untergekommen:  
      
    ~~~apache
      
    <IfModule rewrite_module>  
        RewriteEngine On  
        RewriteCond   %{SCRIPT_FILENAME} !-f  
        RewriteCond   %{HTTP_ACCEPT}     !.*application/xhtml\+xml.* [NC]  
        RewriteRule   ^(.*)$             $1.xhtml                    [T=text/html,L]  
      
        RewriteCond   %{SCRIPT_FILENAME} !-f  
        RewriteRule   ^(.*)$             $1.xhtml                    [L]  
    </IfModule>  
    
    ~~~###########################################  
      
    Als gesamte Grundkonfiguration - brauchbar für jedes web:  
      
    ~~~apache
      
    ### core ###  
    AddDefaultCharset iso-8859-1  
      
    ### module ###  
    <IfModule negotiation_module>  
       Options +MultiViews  
    </IfModule>  
    <IfModule !negotiation_module>  
       <IfModule rewrite_module>  
           RewriteEngine On  
           RewriteCond   %{SCRIPT_FILENAME} !-f  
           RewriteCond   %{HTTP_ACCEPT}     !.*application/xhtml\+xml.* [NC]  
           RewriteRule   ^(.*)$             $1.html                     [L]  
      
           RewriteCond   %{SCRIPT_FILENAME} !-f  
           RewriteRule   ^(.*)$             $1.xhtml                    [L]  
       </IfModule>  
    </IfModule>  
    <IfModule mod_mime>  
       # falls der MIME-Type nicht erkannt wird, Kommentar  
       # "#" bitte von der nächsten Zeile entfernen:  
       # AddType application/xhtml+xml .xhtml  
      
       AddCharset iso-8859-1 .css  
       AddCharset iso-8859-1 .js  
       AddCharset iso-8859-1 .xhtml  
    </IfModule>  
    
    ~~~###########################################  
      
      
    Gruß aus Berlin!  
    eddi