dom: mod rewrite

bin seit heute morgen 6 uhr am arbeiten und kann nicht mehr 100% denken - bräuchte aber dringend eine kleine funktion:

und zwar würde ich gerne die session-id von allen seiten per mod rewrite entfernen

bsp:
http://www.test.de/index.php?sid=adfasdfads
in
http://www.test.de/index.php

hat jemand schnell nen tipp?

  1. Hallo benne,

    und zwar würde ich gerne die session-id von allen seiten per mod rewrite entfernen

    bsp:
    http://www.test.de/index.php?sid=adfasdfads
    in
    http://www.test.de/index.php

    hat jemand schnell nen tipp?

    Welchen Sinn sollte das haben?

    Ich glaube, Du verstehst die Funktionsweise on mod_rewrite nicht. mod_rewrite kann URLs transparent für den Browser umschreiben, das heißt eine Anfrage auf

    http://www.example.org/a/b/c

    kann für den Server so erscheinen wie eine Anfrage an

    http://www.example.org/d

    Der Browser bekommt von dem internen Umschreiben nichts mit. Wenn eine URL bereits im Browser angekommen ist, kann mod_rewrite nichts mehr tun. Man verwendet mod_rewrite im Allgemeinen, um dem Browser in Links 'schöne' URLs vorzusetzen, die dann auf dem Server eine bestimmte Aktion hervorrufen, die eigentlich unter einem 'häßlichen' URL zu erreichen wären.

    Wenn Du nun die SID bereits an den Browser geschickt hast (also im href-Attribut des a-Tags vorhanden ist) dann kann mod_rewrite nichts mehr machen. Wenn Du die SID nicht mehr im Browser sehen willst, darfst Du die SID nicht mehr über die Links bzw. Formulare an den Browsers übergeben. Was natürlich den Nachteil hat, dass Du Dich damit zwangsläufig auf Cookies festlegst.

    Viele Grüße,
    Christian

    --
    Losung und Lehrtext für Montag, 20. Oktober 2003:
    Der Herr ist geduldig und von großer Kraft, vor dem niemand unschuldig ist. (Nahum 1,3)
    Gott ist treu, der euch nicht versuchen lässt über eure Kraft, sondern macht, dass die Versuchung so ein Ende nimmt, dass ihr's ertragen könnt. (1.Korinther 10,13)
    (http://www.losungen.de/heute.php3, i.V. Götz)
    1. Hallo Christian und andere Leser!

      Das mit mod_rewrite ist eh was feines,
      das könnte ich eigentlich auch recht gut brauchen ....
      zwar nicht unmittelbar im Moment aber brauchbar isses,
      daher ebenfalls eine interessensfrage:

      Geht das nur wenn ich root-admin bin am Server und
      direkt den Apache bzw. Apache Config-Dateien veraendern kann,
      oder geht das auch wenn ich nen Normalen FTP-Account habe
      bei einem Provider und dann ne .htaccess oder so ablege?

      Waere interessant um aus
      www.****.com/user/free/mail/   ein simples   /mail/  machen kann.

      Danke Christian (und andere Leser)
      LG Aqua

      1. Hi,

        Geht das nur wenn ich root-admin bin am Server und
        direkt den Apache bzw. Apache Config-Dateien veraendern kann,
        oder geht das auch wenn ich nen Normalen FTP-Account habe
        bei einem Provider und dann ne .htaccess oder so ablege?

        Ob das in der .htaccess machbar ist, hängt davon ab, was in der httpd.conf eingerichtet ist - sprich, wie AllowOverwrite konfiguriert ist.

        Und natürlich davon, ob der Provider überhaupt das mod_rewrite installiert hat...

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
        1. guten Abend,

          du erlaubst eine anscheinend winzige Korrektur:

          Ob das in der .htaccess machbar ist, hängt davon ab, was in der httpd.conf eingerichtet ist - sprich, wie AllowOverwrite konfiguriert ist.

          Es geht um "AllowOverride". Allerdings: wenn die httpd.conf überhaupt den Einsatz von .htaccess zuläßt, ist es nur noch Sache desssen, der seine .htaccess schreibt, zu entscheiden, ob und wie er "AllowOverride" einsetzt. In der httpd.conf kannst du nicht festlegen, ob er damit rumspielen darf oder nicht, du kannst nur .htaccess grundsätzlich zulassen oder untersagen.

          Und natürlich davon, ob der Provider überhaupt das mod_rewrite installiert hat...

          Das könnte sich als der tatsächlich entscheidende Maßstab erweisen.

          Grüße aus Berlin

          Christoph S.

          1. Moin!

            Es geht um "AllowOverride". Allerdings: wenn die httpd.conf überhaupt den Einsatz von .htaccess zuläßt, ist es nur noch Sache desssen, der seine .htaccess schreibt, zu entscheiden, ob und wie er "AllowOverride" einsetzt.

            Falsch.

            In der httpd.conf kannst du nicht festlegen, ob er damit rumspielen darf oder nicht, du kannst nur .htaccess grundsätzlich zulassen oder untersagen.

            Man kann in einigen groben Stücken bestimmen, welche Konfigurationsmöglichkeiten der Benutzer per .htaccess haben darf. Wäre ja auch schlimm, wenn man da als Admin nicht vor gewisse Dinge einen Riegel schieben könnte.

            Ich empfehle das Studium des Manuals unter http://httpd.apache.org/docs/mod/core.html#allowoverride

            Zitat:
            "When this directive is set to None, then .htaccess files are completely ignored."
            "When this directive is set to All, then any directive which has the .htaccess Context is allowed in .htaccess files."
            "The directive-type can be one of the following groupings of directives."

            Du behauptest immer, dich mit Apache gut auszukennen, beweist aber leider zumeist das Gegenteil... schade eigentlich, wo doch ein kurzer Blick in die Doku _vor_ dem Posten jegliche peinliche Fehlaussage vermeiden könnte.

            - Sven Rautenberg

            --
            "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
            (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
            1. hallo Sven,

              es sieht ja beinahe so aus, als ob ich mir in den letzten Tagen besonders viel Mühe gegeben hätte, mich so auszudrücken, daß ich falsch verstanden werden muß.

              Es geht um "AllowOverride".

              Damit warst du hoffentlich einverstanden.

              Allerdings: wenn die httpd.conf überhaupt den Einsatz von .htaccess zuläßt

              Das bedeutet: Es darf nicht "AllowOverride None" vorgegeben sein  -  auch da wirst du noch zustimmen können.

              ist es nur noch Sache desssen, der seine .htaccess schreibt, zu entscheiden, ob und wie er "AllowOverride" einsetzt.

              Ich will doch Calocybe auch zu seinem Recht kommen lassen ... Korrekt wäre gewesen (und war auch so gedacht, aber nicht so geschrieben):
              ... ob und wie er die von "AllowOverride" zugelassenen Anweisungen einsetzt ...

              Falsch.

              Jetzt nicht mehr.

              Man kann in einigen groben Stücken bestimmen, welche Konfigurationsmöglichkeiten der Benutzer per .htaccess haben darf.

              So ganz und gar und vollständig sollte ich nicht vergessen haben, was ich mal aus den "default"-Kommentaren übersetzt habe. Es gibt in Abschnitt 2 ("main server configuration") die Festlegungen für das DocumentRoot, und darin steht als vorgefertigter Kommentar:

              Jetzt werden die Optionen festgelegt, die von der Datei .htaccess überschrieben

              werden dürfen. Auch hier kann "All" oder irgendeine Kombination von "Options",

              "FileInfo", "AuthConfig" und "Limit" eingetragen werden.

              Ich empfehle das Studium des Manuals unter http://httpd.apache.org/docs/mod/core.html#allowoverride

              Der link, den Andreas angegeben hat, gilt zwar für Apache2, hat aber den Vorteil, daß es sich bereits um eine deutschsprachige Seite handelt  -  inhaltlich steht dasselbe drin.

              Christoph S.

              1. Hi,

                Der link, den Andreas angegeben hat, gilt zwar für Apache2, hat aber den Vorteil, daß es sich bereits um eine deutschsprachige Seite handelt  -  inhaltlich steht dasselbe drin.

                Das liegt vermutlich daran, daß apache.org meint, die Sprache anhand irgendwelcher vom Browser übermittelter Werte auswählen zu müssen - das zitierte stammte direkt aus der Seite, die ICH bei Aufruf der Seite bekam - also der englischen Version.

                Ich sehe in der Tatsache, daß da unter Umständen automatisch eine deutsche Version der Seite kommt, keinerlei Vorteil. Ich will das Original, nicht irgendeine Übersetzung (die eigentlich immer schlechter ist als das Original, weil zu den Fehlern im Original noch die Übersetzungsfehler und -ungenauigkeiten dazukommen).  Außerdem zeigt so unter Umständen mein Link eben nicht zum zitierten Text, sondern zu einer anderen Variante...

                Immerhin lassen sie einem noch die Wahl, die automatische Sprachauswahl zu überstimmen...

                cu,
                Andreas

                --
                Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
                http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
                1. hallo Andreas,

                  Das liegt vermutlich daran, daß apache.org meint, die Sprache anhand irgendwelcher vom Browser übermittelter Werte auswählen zu müssen

                  Interpretationssache. Ich verstehe das eher als einen freundlich gemeinten "Service".

                  • das zitierte stammte direkt aus der Seite, die ICH bei Aufruf der Seite bekam - also der englischen Version.

                  Keine Sorge, die kann ich mit ein paar klitzekleinen Veränderungen meiner Standard-Einstellungen auch zu lesen bekommen.

                  Ich sehe in der Tatsache, daß da unter Umständen automatisch eine deutsche Version der Seite kommt, keinerlei Vorteil. Ich will das Original

                  Auch die deutschsprachige Seite _ist_ das Original. Sie ist autorisiert. Mir ist nicht bekannt, ob du mit den Namen derjenigen, die die Übersetzung zu verantworten haben, etwas anfangen kannst  -  es sind "alte" und an vielen Stellen sehr verdienstvolle Teilnehmer des SELFHTML-Forums.

                  Immerhin lassen sie einem noch die Wahl, die automatische Sprachauswahl zu überstimmen...

                  Ja ... aber eventuell nicht deutlich genug. Wer seinen Browser nicht beherrscht, wird die englischsprachige Seite unter exakt derselben Adresse nicht zu sehen bekommen. Ich werds ihnen mal schreiben, daß es eventuell besser ist, die Sprachauswahl nicht den mitgesendeten Client-Informationen zu überlassen, sondern sie den Wünschen des Seitenbesuchers anheim zu geben.

                  Grüße aus Berlin

                  Christoph S.

              2. Moin!

                es sieht ja beinahe so aus, als ob ich mir in den letzten Tagen besonders viel Mühe gegeben hätte, mich so auszudrücken, daß ich falsch verstanden werden muß.

                Du drückst dich mißverständlich, aber auch schlicht falsch aus.

                Es geht um "AllowOverride".

                Damit warst du hoffentlich einverstanden.

                Ja, in der Tat.

                Allerdings: wenn die httpd.conf überhaupt den Einsatz von .htaccess zuläßt

                Das bedeutet: Es darf nicht "AllowOverride None" vorgegeben sein  -  auch da wirst du noch zustimmen können.

                Ja.

                ist es nur noch Sache desssen, der seine .htaccess schreibt, zu entscheiden, ob und wie er "AllowOverride" einsetzt.

                Ich will doch Calocybe auch zu seinem Recht kommen lassen ... Korrekt wäre gewesen (und war auch so gedacht, aber nicht so geschrieben):
                ... ob und wie er die von "AllowOverride" zugelassenen Anweisungen einsetzt ...

                Falsch.

                Jetzt nicht mehr.

                Ja, aber vorher wars eben falsch. Der, der die .htaccess schreibt, hat keinerlei gestaltenden Einfluß auf die Einstellung von AllowOverride. Der muß nehmen, was ihm vorgesetzt wird.

                Klar, wenn derjenige in Personalunion auch die httpd.conf bearbeiten kann, ist dein Satz natürlich wieder faktisch richtig. Dann dürften aber auch viele der Optionen, die man _auch_ in .htaccess einsetzen kann, dort uninteressant sein.

                Aber es geht ja noch falsch weiter:

                In der httpd.conf kannst du nicht festlegen, ob er damit rumspielen darf oder nicht, du kannst nur .htaccess grundsätzlich zulassen oder untersagen.

                Das ist sachlich ebenso falsch. Erstens kann der, der die .htaccess schreibt, nicht mit AllowOverride rumspielen, weil die Option dort gar nicht vorkommen darf, und zweitens kann man in der httpd.conf eben wesentlich mehr machen, als nur .htaccess ein- oder auszuschalten.

                Man kann in einigen groben Stücken bestimmen, welche Konfigurationsmöglichkeiten der Benutzer per .htaccess haben darf.

                So ganz und gar und vollständig sollte ich nicht vergessen haben, was ich mal aus den "default"-Kommentaren übersetzt habe. Es gibt in Abschnitt 2 ("main server configuration") die Festlegungen für das DocumentRoot, und darin steht als vorgefertigter Kommentar:

                Jetzt werden die Optionen festgelegt, die von der Datei .htaccess überschrieben

                werden dürfen. Auch hier kann "All" oder irgendeine Kombination von "Options",

                "FileInfo", "AuthConfig" und "Limit" eingetragen werden.

                Ja, und? Widerspricht meiner Aussage gar nicht. Oder war das jetzt ein "Memo an michselbst"?

                Ich empfehle das Studium des Manuals unter http://httpd.apache.org/docs/mod/core.html#allowoverride

                Der link, den Andreas angegeben hat, gilt zwar für Apache2, hat aber den Vorteil, daß es sich bereits um eine deutschsprachige Seite handelt  -  inhaltlich steht dasselbe drin.

                Ob nun Apache 1.3 oder 2.0, dürfte in Details interessant sein, im Groben hingegen nicht. Und nur, weil es 2.0 gibt, wird 1.3 noch lange nicht auf dem Müll landen. Es gibt ja anscheinend immer noch Detailprobleme mit PHP 4. Solange setze ich zumindest 1.3 ein.

                - Sven Rautenberg

                --
                "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
                (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
          2. Hi,

            Es geht um "AllowOverride". Allerdings: wenn die httpd.conf überhaupt den Einsatz von .htaccess zuläßt, ist es nur noch Sache desssen, der seine .htaccess schreibt, zu entscheiden, ob und wie er "AllowOverride" einsetzt. In der httpd.conf kannst du nicht festlegen, ob er damit rumspielen darf oder nicht, du kannst nur .htaccess grundsätzlich zulassen oder untersagen.

            Sorry, aber das ist Unsinn. Mit AllowOverride kann man genau festlegen, was in der .htaccess machbar ist.

            AllowOverride Directive
            Description: Types of directives that are allowed in .htaccess files

            Details siehe http://httpd.apache.org/docs-2.0/mod/core.html#allowoverride

            Und der Autor der .htaccess kann mit AllowOverride überhaupt nicht einsetzen, da dies logischerweise nur in der httpd.conf geschehen kann.
            Wäre ja sehr sinnvoll, wenn man in der .htaccess festlegen könnte, welche Sachen aus der httpd.conf man in der .htaccess überschreiben darf...

            cu,
            Andreas

            --
            Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
            http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
      2. Moin!

        Geht das nur wenn ich root-admin bin am Server und
        direkt den Apache bzw. Apache Config-Dateien veraendern kann,

        Das ist dann am einfachsten, weil Konfigurationen in der httpd.conf gleich ganz zu Beginn des URL-Findungs-Prozesses wirksam werden. Wenn du die Möglichkeit hast, dann nutze sie.

        oder geht das auch wenn ich nen Normalen FTP-Account habe
        bei einem Provider und dann ne .htaccess oder so ablege?

        Kannst du auch machen. Grundsätzlich funktioniert das.

        Waere interessant um aus
        www.****.com/user/free/mail/   ein simples   /mail/  machen kann.

        Das wäre aber nur möglich, wenn du tatsächlich die .htaccess in das DOCUMENT_ROOT des Servers legen kannst, bzw. in das Verzeichnis /mail im DOC-Root.

        Denn der Server muß bei .htaccess-Rewriting ja erstmal die .htaccess finden, in der das Rewriting steht. Also ist so eine .htaccess schlauerweise im Document-Root-Verzeichnis (das, was mit www.url.tld/ erreicht wird) untergebracht und gilt dann für den gesamten, darauf aufbauenden URL-Baum. Wenn du nur auf /user/free/mail zugreifen kannst, kannst du keine Kurz-URL /mail erzeugen.

        Abgesehen davon mußt du solch eine URL nicht rewriten, ein Alias würde es wahrscheinlich auch tun und ist wesentlich einfacher einzurichten.

        - Sven Rautenberg

        --
        "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
        (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
        1. Hallo Sven,

          Abgesehen davon mußt du solch eine URL nicht rewriten, ein Alias würde es wahrscheinlich auch tun und ist wesentlich einfacher einzurichten.

          Und mit ziemlicher Sicherheit wesentlich performanter.

          Viele Grüße,
          Christian

          --
          Losung und Lehrtext für Montag, 20. Oktober 2003:
          Der Herr ist geduldig und von großer Kraft, vor dem niemand unschuldig ist. (Nahum 1,3)
          Gott ist treu, der euch nicht versuchen lässt über eure Kraft, sondern macht, dass die Versuchung so ein Ende nimmt, dass ihr's ertragen könnt. (1.Korinther 10,13)
          (http://www.losungen.de/heute.php3, i.V. Götz)
        2. Hi,

          Abgesehen davon mußt du solch eine URL nicht rewriten, ein Alias würde es wahrscheinlich auch tun und ist wesentlich einfacher einzurichten.

          Wobei Alias nicht in der .htaccess erlaubt ist (was ja Wunsch von Aqua war, daß er es in der .htaccess konfigurieren kann)

          cu,
          Andreas

          --
          Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
          http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
          1. Moin!

            Wobei Alias nicht in der .htaccess erlaubt ist (was ja Wunsch von Aqua war, daß er es in der .htaccess konfigurieren kann)

            So'n Mist aber auch. Bleibt also nur Redirect/RedirectMatch & Co.

            - Sven Rautenberg

            --
            "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
            (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)