dedlfix: T-Flag (mod_rewrite) prinzipielle Lösung

Beitrag lesen

Hi!

Ich vermute, da hat mod_php in dieser Hinsicht einen Bug. Das Sourcecode-Ausgeben an und für sich klappte nämlich auch.
Sagte ich doch schon: https://issues.apache.org/bugzilla/show_bug.cgi?id=36590

Nee, ich sagte mod_php, du meintest aber mod_rewrite. Und wenn du grad den Bug wiedereröffnet hast, so liegst du da nicht richtig. Du willst du immer noch den von einem Handler definierten Content-Type umschreiben. Das wird definitiv nicht anderswo gehen als in diesem Handler selbst (oder in einem nachgelagerten Filter). In dem Bug ging es um die Ermittlung des MIME-Types von Dateien, die von einem Durchreich-Handler zu Response verarbeitet werden.

Ich hab noch weitere Tests zu dem Thema angestellt. Dieses Flag arbeitet, wie schon in dem Bericht erwähnt, nur dann richtig, wenn kein Umschreiben stattfindet. Schreibt man den Request um, geht dabei der MIME-Type verloren. Jeder umgeschriebene Requests erzeugt einen internen Redirect, der wie ein neuer Request behandelt wird. Außerdem darf kein Handler den Request auf direktem Wege verarbeiten, denn dann wird der MIME-Type ja gar nicht beachtet.

Beispiel 1:

RewriteRule ^(.+.php)$ - [T=application/x-httpd-php-source]

Veranlasst die Ausgabe des PHP-Codes in Farbe und bunt. Voraussetzung ist, dass für .php kein Handler definiert ist.

<FilesMatch .php$>
    SetHandler application/x-httpd-php
  </FilesMatch>

Solch ein Handler verhindert das Auswerten des MIME-Types, obwohl mod_rewrite arbeitet, was man im RewriteLog sehen kann.

AddType application/x-httpd-php .php

darf jedoch gesetzt sein, das wird durch die RewriteRule außer Kraft gesetzt.

Beispiel 2:

RewriteRule ^(.+.php)s$ $1 [T=application/x-httpd-php-source]

Obige RewriteRule steht so im Handbuch, und so funktioniert es definitiv nicht.

RewriteRule ^(.+).html$ $1.php
  RewriteRule ^(.+).php$ - [T=application/x-httpd-php-source]

Das geht, aber wie gehabt unter der Voraussetzung, dass kein .php-Handler aktiv ist.

Der Content-Type der Response ist aber bei beiden Beispielen nicht etwa application/x-httpd-php-source - das wäre auch ziemlich sinnfrei - sondern text/html, weil der PHP-Handler diesen so festgelegt hat. Wenn man das Spielchen mit Durchreich-Typen wie .html oder .jpg probiert, dann ist der Content-Type gleich dem MIME-Type.

Lo!

0 76

Apache/PHP soll CSS parsen und als text/css ausliefern

suit
  • webserver
  1. 1
    Mega
    1. 0
      suit
      1. 1
        fastix®
        1. 0
          suit
          1. 0
            fastix®
  2. 0
    fastix®
    1. 0
      suit
      1. 0
        fastix®
        1. 0
          suit
          1. 0
            fastix®
            1. 0

              Nachtrag der Lösung betreffs Testing

              fastix®
            2. 0
              Edgar Ehritt
            3. 0
              suit
              1. 0
                fastix®
                1. 0
                  suit
                2. 0

                  Regulärer Ausdruck, in FilesMatch - case sensitive?

                  suit
          2. 0
            Edgar Ehritt
    2. 0
      Edgar Ehritt
  3. 0
    Pragma
    • php
    1. 0
      Gerold
    2. 0
      fastix®
      1. 0
        Pragma
      2. 0

        Apache - Handler via CGI aufrufen

        Edgar Ehritt
        • webserver
  4. 0

    T-Flag (mod_rewrite) prinzipielle Lösung

    suit
    1. 1
      dedlfix
      1. 0
        suit
        1. 0
          dedlfix
          1. 0
            dedlfix
            1. 0
              suit
              1. 1
                dedlfix
                1. 0
                  dedlfix
                2. 0
                  dedlfix
                  1. 0
                    suit
                    1. 0
                      dedlfix
              2. 0
                Edgar Ehritt
    2. 0
      Pragma
      1. 0
        suit
        1. 0
          Pragma
          1. 0
            suit
            1. 0
              Pragma
              1. 0
                suit
  5. 0
    claudia_k
    1. 0
      suit
      1. 0
        dedlfix
        1. 0

          OT: direkte Handler vs MIME-Type-Handler

          claudia_k
          1. 0
            dedlfix
            1. 0
              claudia_k
              1. 0
                dedlfix
                1. 0
                  Edgar Ehritt
                  1. 0
                    dedlfix
                    1. 0
                      Edgar Ehritt
                  2. 0

                    Apache-interne Vorgänge beim Request-Handling

                    dedlfix
                    1. 0

                      mod_header zum überschreiben von bestehenden Headern

                      suit
                      1. 0
                        dedlfix
                      2. 0
                        Edgar Ehritt
                    2. 0
                      Edgar Ehritt
                      1. 0
                        dedlfix
                        1. 0
                          Edgar Ehritt
                          1. 0
                            dedlfix
                            1. 0
                              Edgar Ehritt
                              1. 0
                                dedlfix
                                1. 0
                                  Edgar Ehritt
        2. 0
          Edgar Ehritt
          1. 0
            dedlfix
  6. 0
    DiBo33
    1. 0
      suit
      1. 0
        DiBo33
      2. 0

        Apache/PHP

        Edgar Ehritt
        • projektverwaltung
        1. 0
          Edgar Ehritt
          • menschelei
        2. 0
          suit
          1. 0
            Edgar Ehritt
            1. 0
              suit
              1. 0
                fastix®
                1. 0
                  suit
                  • menschelei
  7. 0

    gelöst

    suit