Zul: mod_rewrite Problem

Hi Forum,

Ich versuche es nun schon seit einger Zeit kriege aber einfach nichts wirkliches hin. Problem ist: Ich versuche mit mod_rewrite zu realisieren, dass immer wenn ein bestimmtes Verzeichnis aufgerufen wird eine bestimmte Datei aufgerufen wird und der Rest des Pfades als Parameter an die Datei übergeben wird. Also das wenn die Url

http://domain/dir/<path>

aufgerufen wird, sie in folgende umgewandelt wird:

http://domain/dir/file.php?p=<path>

wichtig ist dabei das <path> sowohl, eine Datei mit beliebieger Endung als auch ein Verzeichnis (evtl. mit Unterverzeichnissen) sein kann. Jemand eine Idee wie dies Umzusetzen ist?

Mfg Zul

  1. Hi,

    Ich versuche es nun schon seit einger Zeit kriege aber einfach nichts wirkliches hin.

    Und du zeigst uns auch nichts davon, wie du's versucht und nicht hingekriegt hast ...

    MfG ChrisB

    1. Hi CrisB,

      Meinen Code kann ich euch gerne geben, ich denke aber er wird nimandem nutzen:

      RewriteEngine on
      RewriteRule ^dir/(.*)$ dir/file?path=$1

      oder wenn man die .htaccess-Datei in dir/ verschiebt so:

      RewriteEngine on
      RewriteRule ^(.*)$ file?path=$1

      Wenn ich jetzt http://domain/dir/hallo.html aufrufe erhalte ich einen 404 Fehler. Ich hoffe die Idee meines Codes ist verständlich.

      Mfg Zul

      1. Hellihello

        Hi CrisB,

        Meinen Code kann ich euch gerne geben, ich denke aber er wird nimandem nutzen:

        RewriteEngine on
        RewriteRule ^dir/(.*)$ dir/file?path=$1

        oder wenn man die .htaccess-Datei in dir/ verschiebt so:

        RewriteEngine on
        RewriteRule ^(.*)$ file?path=$1

        Was soll der Server denn zurückgeben mit "file"? Weiß er, dass das eine Datei ist?

        RewriteRule ^(.*)$ /dir/test.php?test=$1

        mal probiert? Vorer eine test.php im /dir anlegen.

        Dank und Gruß,

        frankx

        --
        tryin to multitain  - Globus = Planet != Welt
        1. Hi frankx,

          Was soll der Server denn zurückgeben mit "file"? Weiß er, dass das eine Datei ist?

          Ja er weiß das file eine Datei ist sie heißt "file" ist bei mir content.php. Ich habe sie hier in file umgenannt damit klar ist das es eine ganz normale Datei ist weil das ganze muss ja auch ohne PHP klappen oder?

          RewriteRule ^(.*)$ /dir/test.php?test=$1
          mal probiert? Vorer eine test.php im /dir anlegen.

          Ja jetzt kriege ich aber wenn ich http://domain/dir/hallo.html oder http://domain/dir/hallo/ aufrufe immer nur in content.php ausgeben. Zur Info meine content.php sieht im Moment so aus:

          <?php echo $_GET['path']; ?>

          Also wird die richtige Addresse aufgerufen aber etwas stimmt mit dem Parameter nicht.

          Mfg Zul

          1. Mahlzeit,

            RewriteRule ^(.*)$ /dir/test.php?test=$1
            mal probiert? Vorer eine test.php im /dir anlegen.

            <?php echo $_GET['path']; ?>

            Also wird die richtige Addresse aufgerufen aber etwas stimmt mit dem Parameter nicht.

            Kein Wunder. Der Parameter heißt ja auch (lt. Rewrite-Regel) "test" und nicht "path". Also entweder an der einen oder an der anderen Stelle anpassen und schon sollte es funktionieren ...

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. Hellihello

              <?php echo $_GET['path']; ?>

              Also wird die richtige Addresse aufgerufen aber etwas stimmt mit dem Parameter nicht.

              Kein Wunder. Der Parameter heißt ja auch (lt. Rewrite-Regel) "test" und nicht "path". Also entweder an der einen oder an der anderen Stelle anpassen und schon sollte es funktionieren ...

              Und mal gleich erstmal ein var_dump($_GET) zum testen nehmen. Das gibt nämlich auch was aus, wenn nix drinne steht (und eben auch die anderen Vars, die Du vielleicht übersehen hast).

              Dank und Gruß,

              frankx

              --
              tryin to multitain  - Globus = Planet != Welt
              1. Hi frankx,

                Und mal gleich erstmal ein var_dump($_GET) zum testen nehmen. Das gibt nämlich auch was aus, wenn nix drinne steht (und eben auch die anderen Vars, die Du vielleicht übersehen hast).

                Ok, ab jetzt benutze ich nicht mehr echo $_GET['path']; sondern mit echo var_dump($_GET); Die Ausgabe ist jetzt bei http://domain/dir/hallo.html:

                array(1) {
                  ["path"]=>
                  string(11) "content.php"
                }

                Also hat sich am Problem nichts getan.

                Mfg Zul

                1. Hellihello

                  Ok, ab jetzt benutze ich nicht mehr echo $_GET['path']; sondern mit echo var_dump($_GET); Die Ausgabe ist jetzt bei http://domain/dir/hallo.html:

                  array(1) {
                    ["path"]=>
                    string(11) "content.php"
                  }

                  Also hat sich am Problem nichts getan.

                  Doch, Du weißt, was da ist und was nicht.

                  Was sollte denn deiner Ansicht nach in $_GET["path"] drin stehen?

                  Dank und Gruß,

                  frankx

                  --
                  tryin to multitain  - Globus = Planet != Welt
                  1. Hallo frankx

                    Was sollte denn deiner Ansicht nach in $_GET["path"] drin stehen?

                    Im fall http://domain/dir/hello.html sollta die ausgabe folgende sein:

                    array(1) {
                      ["path"]=>
                      string(10) "hello.html"
                    }

                    Mfg Zul

                    1. Hellihello

                      und wo taucht dieses content.php auf? Mit ständig wechselnden Namen in Deinen Scripts und Posts wird es nicht einfacher. Die Umgebungsinfos sollten schon passen.

                      Dank und Gruß,

                      frankx

                      --
                      tryin to multitain  - Globus = Planet != Welt
                      1. Hi frankx,

                        Ok dann hier nochmal mein Dateisystem:

                        /htdocs
                          /dir
                            .htaccess
                            content.php

                        Inhalt .htaccess:

                        RewriteEngine On
                        RewriteRule ^(.*)$ content.php?path=$1

                        Inhalt content.php:

                        <?  
                          echo var_dump($_GET);  
                        ?>
                        

                        Mfg Zul

                        1. Mahlzeit,

                          Ok dann hier nochmal mein Dateisystem:

                          /htdocs
                            /dir
                              .htaccess
                              content.php

                          Probier doch einfach mal spaßeshalber den Vorschlag von Dem Martin aus:

                          /htdocs
                            dir          <--- dies ist ein PHP-Skript ... nur halt ohne Dateiendung

                          Inhalt dir:

                          <?php[code lang=php]  
                            
                          var_dump($_GET);    // oder alternativ: print_r($_GET);  
                            
                          var_dump($_SERVER); // oder alternativ: print_r($_SERVER);  
                            
                          
                          ~~~?>[/code]  
                            
                          Und rufe "www.example.org/dir/irgendein/beliebiger/pfad.html" auf - was wird ausgegeben?  
                            
                            
                          MfG,  
                          EKKi  
                          
                          -- 
                          sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                          
                          1. Hi EKKi

                            Probier doch einfach mal spaßeshalber den Vorschlag von Dem Martin aus:

                            Klappt super! Mein (noch) einzigstes Problem und (noch) Grund mich nicht für diese Version zu entscheiden erkläre ich In einem andrem Post in diesem Thread.

                            Mfg Zul

                        2. Hellihello

                          Hi frankx,

                          Ok dann hier nochmal mein Dateisystem:

                          /htdocs
                            /dir
                              .htaccess
                              content.php

                          Inhalt .htaccess:

                          RewriteEngine On
                          RewriteRule ^(.*)$ content.php?path=$1

                          Inhalt content.php:

                          <?

                          echo var_dump($_GET);
                          ?>

                            
                          Weil content.php eben auch auf das Pattern matched? Ein [L] (=schlussNachErstemMatch) am Ende könnte helfen.  
                            
                          Dank und Gruß,  
                            
                          [frankx](http://community.de.selfhtml.org/visitenkarten/view.php?key=82)
                          
                          -- 
                          [tryin to](http://sauer-ernst.de) [multitain](http://multitain.de)  - Globus = Planet != Welt 
                          
                          1. Hi frankx,

                            Weil content.php eben auch auf das Pattern matched? Ein [L] (=schlussNachErstemMatch) am Ende könnte helfen.

                            Also so?

                            RewriteEngine On
                            RewriteRule ^(.*)$ content.php?path=$1 [L]

                            Die Ausgabe ändert sich leider nicht bei Aufruf von http://domain/dir/hallo.html :(

                            Mfg Zul

                          2. echo $begrüßung;

                            RewriteEngine On
                            RewriteRule ^(.*)$ content.php?path=$1
                            Weil content.php eben auch auf das Pattern matched? Ein [L] (=schlussNachErstemMatch) am Ende könnte helfen.

                            Nein, das hilft nicht. Man muss dazu die Arbeitsweise von mod_rewrite kennen. Wenn eine RewriteRule in der Per-Verzeichnis-Konfigurationsdatei (meist .htaccess) steht, sind schon fast alle Messen im Apachen gelesen. Es ist dann nicht mehr möglich, den Request, der schon den Weg in dieses Verzeichnis gefunden hat, noch großartig zu ändern. Deshalb bedient sich mod_rewrite eines Tricks. Es macht einen internen Redirect. Davon bekommt man außer im RewriteLog nicht viel mit. Dieser Redirect hat jedoch die Angewohnheit nochmal die gesamte Prozedur inklusive .htaccess-Datei-Check zu durchlaufen. Man muss also dafür sorgen, dass der erneute Request nicht noch einmal auf die bisherigen Regeln passt, sonst kann das unter Umständen auch zu einer Endlosschleife führen (die der Apache aber recht bald abbricht). Das [L] sorgt nur für den aktuellen Durchlauf für ein Beenden der nachfolgenden RewriteRule-Checks, doch der Redirect ist ein neuer Fall. Im Allgemeinen löst man dieses Problem so, dass real existierende Dateien und Verzeichnisse mittels RewriteCond ausgeklammert werden:

                            RewriteCond %{REQUEST_FILENAME} !-f
                              RewriteCond %{REQUEST_FILENAME} !-d
                              RewriteRule ^(.*)$ irgendwohin?param=$1

                            Request nach foobar kommt rein, ist weder Verzeichnis noch Datei, die RewriteRule passt. Es ergibt einen internen Redirect nach irgendwohin?param=foobar. Ein neuer Request nach irgendwohin?param=foobar kommt, "irgendwohin" ist eine Datei, RewriteRule passt nicht, Ende.

                            echo "$verabschiedung $name";

                            1. Hi dedlfix,

                              Danke für die längere Ausführung allerdings erhalte ich damit einen 404 Fehler.

                              Mfg Zul

                              1. Ich bins nochmal,

                                Es geht doch hatte das RewriteEngine On vergessen. Also danke nochmals und endlich hat sich mein Problem gelöst!

                                Mfg Zul

            2. Hi EKKi,

              RewriteRule ^(.*)$ /dir/test.php?test=$1
              mal probiert? Vorer eine test.php im /dir anlegen.

              <?php echo $_GET['path']; ?>

              Also wird die richtige Addresse aufgerufen aber etwas stimmt mit dem Parameter nicht.

              Kein Wunder. Der Parameter heißt ja auch (lt. Rewrite-Regel) "test" und nicht "path". Also entweder an der einen oder an der anderen Stelle anpassen und schon sollte es funktionieren ...

              Bei mir stand schon vorher an allen Stellen 'path' (habs mal ausprobiert mit 'test' gehts auch net ;)). Die RewriteRule habe ich in meine .htaccess-Datei angepasst aber nicht das Zitat geändert.

              Mfg Zul

  2. Hallo,

    immer wenn ein bestimmtes Verzeichnis aufgerufen wird eine bestimmte Datei aufgerufen wird und der Rest des Pfades als Parameter an die Datei übergeben wird.

    was für eine Datei soll das dann sein? PHP?
    Dann hätte ich noch einen ganz anderen Lösungsvorschlag ohne mod_rewrite.

    Also das wenn die Url
    http://domain/dir/<path>
    aufgerufen wird, sie in folgende umgewandelt wird:
    http://domain/dir/file.php?p=<path>

    Ich würde es so einrichten, dass /dir ein PHP-Script ist, kein Verzeichnis. Dann wird mit /dir/<path> automatisch eben dieses Script aufgerufen und bekommt den restlichen URL-Pfad als $_SERVER['PATH_INFO'] übergeben.
    Das müsste doch deine Anforderungen auch erfüllen, oder?

    So long,
     Martin

    --
    Man sollte immer wissen was man sagt
     - aber auf keinen Fall alles sagen, was man weiß.
    1. Hi Martin

      Ich würde es so einrichten, dass /dir ein PHP-Script ist, kein Verzeichnis. Dann wird mit /dir/<path> automatisch eben dieses Script aufgerufen und bekommt den restlichen URL-Pfad als $_SERVER['PATH_INFO'] übergeben.
      Das müsste doch deine Anforderungen auch erfüllen, oder?

      Nein, den eine Datei kann im Gegensatz zu einem Verzeichnis keien Unterverzeichnisse/-Dateien haben. Ich habe jedoch keine Lust mein ganzes Projekt in nur eine Datei zu schreiben (ich versuche mich an einem CMS, welches also sehr groß werden kann und in nur einer Datei zu großen Performace einbrüchen führen würde).

      Mfg Zul

      1. Mahlzeit,

        Ich würde es so einrichten, dass /dir ein PHP-Script ist, kein Verzeichnis. Dann wird mit /dir/<path> automatisch eben dieses Script aufgerufen und bekommt den restlichen URL-Pfad als $_SERVER['PATH_INFO'] übergeben.
        Das müsste doch deine Anforderungen auch erfüllen, oder?

        Nein, den eine Datei kann im Gegensatz zu einem Verzeichnis keien Unterverzeichnisse/-Dateien haben.

        Wer lesen kann, ist klar im Vorteil. Und wer den Mut hat auszuprobieren, umso mehr. Wie Der Martin schrieb, bekäme ein Skript namens "dir" beim Aufruf

        /dir/foo/bar/bli/bla/blubb.html

        alles nach dem eigenen Namen (in diesem Fall also "/foo/bar/bli/bla/blubb.html") als $_SERVER['PATH_INFO'] übergeben.

        Ich habe jedoch keine Lust mein ganzes Projekt in nur eine Datei zu schreiben

        Hm. Das steht IMHO im krassen Widerspruch zu Deiner ursprünglichen Anforderung: "Ich versuche mit mod_rewrite zu realisieren, dass immer wenn ein bestimmtes Verzeichnis aufgerufen wird eine bestimmte Datei aufgerufen wird". Also was willst Du: bei URLs mit einem bestimmten Format eine bestimmte Datei aufrufen oder doch nicht?

        (ich versuche mich an einem CMS, welches also sehr groß werden kann und in nur einer Datei zu großen Performace einbrüchen führen würde).

        Von include() (bzw. vergleichbaren Techniken) hast Du aber schon mal gehört, oder?

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Hi EKKi (diesma im andren Unterbaum ;)),

          Um dir dies zu beantworten muss ich ein bisschen aushohlen:

          Wie du ja weißt versuche ich aktuell ein CMS zu realisieren. Dies soll änhlich wie in Typo3 (ob es bei andren genauso ist weiß ich nicht, ich kenne nur Typo3) eine bestimmte Seitenstruktur besitzen, alle Seiten können auch Unterseiten besitzen. Ein Beispiel-Schema wäre also:

          • Startseite
          • Produkte
              |- Zahnbürste
              `- Zahnpasta
          • Anfahrt
          • Kontakt

          Ganz wichtig für mich ist bei meinem CMS das jeglicher Inhalt über eine von Menschen halbwegs lesbare URL erreichbar ist. Damit meine ich, dass z.b. die Seite "Zahnpasta" über http://domain/produkte/zahnpasta/ erreichbar ist und nicht über etwas wie http://domain/index.php?id=3, da der User an dieser URL nichts über den Inhalt der Seite erkennen kann.

          Zur Methode bei der dir eine PHP-Datei ist: ich will auch nicht, dass http://domain/file_xyz.php/produkte/zahnpasta/ aufgerufen wird, weil es mir wichtig ist das Seite nach außenhin genauso aussieht wie eine _nur_ in HTML geschreibene Seite).

          In den einzelnen Verzeichnissen wird dann ausschließlich der Inhalt der Seiten abgespeichert. Um die Seiten mit einem Design zu verbinden will ich ein PHP-Skript benutzen. Dazu gibt fallen mir 2 Möglichkeiten ein:
          1. Eine Idee wäre jetzt in jedes Verzeichniss eine index.php-Datei anzulegen die immer den gleichen Inhalt hat und den im Ordner befindlichen Inhalt mit einem globalen Design verbindet. Diese müsste dann aber bei jeder neuen Inhaltsseite erstellt werde, was unnötig viel Speicherplatz firsst.
          2. Eine andere Möglichkeit, die ich für eleganter halte ist ein PHP-Skript in das Wurzel-Verzeichnis des CM-Systemes zu legen die als Parameter die Seite übergeben kriegt, deren Inhalt ausgegeben werden soll. Damit lesbare URLs erhalten bleiben will ich dafür mod_rewrite benutzen (daher will ich "eine bestimmte Datei aufrufen", die natürlich über include() oder require() Klassen und Funktionen zur Ausgabe des Inhalts einbinden wird).

          Hoffe deine Frage ist damit beantwortet und es war nicht zu verwirrend.

          Mfg Zul

          1. Hallo,

            alle Seiten können auch Unterseiten besitzen. Ein Beispiel-Schema wäre also:

            • Startseite
            • Produkte
                |- Zahnbürste
                `- Zahnpasta
            • Anfahrt
            • Kontakt

            also im Prinzip nichts Besonderes.

            Ganz wichtig für mich ist bei meinem CMS das jeglicher Inhalt über eine von Menschen halbwegs lesbare URL erreichbar ist.

            Genau das würde ich mit meinem Vorschlag auch erreichen. Einziger Wermutstropfen: Ich brauche etwas, das in der URL wie ein Verzeichnis aussieht, kann also mit der von mir vorgeschlagenen Methode nicht das Rootverzeichnis / der Domain aufrufen.

            Zur Methode bei der dir eine PHP-Datei ist: ich will auch nicht, dass http://domain/file_xyz.php/produkte/zahnpasta/ aufgerufen wird, ...

            Das habe ich ja auch nicht vorgeschlagen!
            Aber du könntest /site/produkte/zahnpasta/ aufrufen. "/site" wäre in diesem Fall ein Script, das die zentrale Anlaufstelle für alle Requests darstellt. Das kann man sogar elegant "tarnen", wenn man etwa vorhat, die Website in mehreren Sprachen anzubieten. Dann könnten /de/produkte/zahnpasta/ und /en/products/toothbrush/ inhaltlich gleiche Seiten in verschiedenen Sprachen aufrufen. Und /de und /en wären in diesem Fall die Dispatcher-Scripte.

            weil es mir wichtig ist das Seite nach außenhin genauso aussieht wie eine _nur_ in HTML geschreibene Seite).

            Genau, das tut sie ja dann auch. Vielleicht klammerst du dich zu fest an die Vorstellung, ein PHP-Script müsste immer mit ".php" enden. Das ist nicht so!

            So long,
             Martin

            --
            Du kannst dem Leben nicht mehr Tage geben.
            Aber dem Tag mehr Leben.
            1. Hi Martin,

              Aber du könntest /site/produkte/zahnpasta/ aufrufen. "/site" wäre in diesem Fall ein Script, das die zentrale Anlaufstelle für alle Requests darstellt. Das kann man sogar elegant "tarnen", wenn man etwa vorhat, die Website in mehreren Sprachen anzubieten. Dann könnten /de/produkte/zahnpasta/ und /en/products/toothbrush/ inhaltlich gleiche Seiten in verschiedenen Sprachen aufrufen. Und /de und /en wären in diesem Fall die

              Das ansich ist eine echt klasse Idee! Ich wollte eh später mein System noch auf mehre Sprachen ausdehnen. Einzigstes Problem ist:

              Genau, das tut sie ja dann auch. Vielleicht klammerst du dich zu fest an die Vorstellung, ein PHP-Script müsste immer mit ".php" enden. Das ist nicht so!

              Das PHP-Skripte kein .php am Ende haben müssen weiß ich. Nur wie ich das .php wegnehmen kann weiß ich leider nicht :(. Afaik müsste da etwas in einer Conf-Datei des Webservers geändert werden, auf die ich leider keinen Zugriff habe. Auch befindet sich mein Webspace auf einem kostenlosen Server (xtreemhost.com), und ich nehme nicht an das dort soetwas möglich ist. Gibt es die Möglichkeit soetwas auch mit einer .htaccess-Datei zu realisien? Wenn Ja, wie?

              Mfg Zul

              1. Mahlzeit,

                Das PHP-Skripte kein .php am Ende haben müssen weiß ich. Nur wie ich das .php wegnehmen kann weiß ich leider nicht :(.

                Ähm ... die Datei einfach umbenennen? Und dann auf den Webserver schieben und ausprobieren? Wo liegt das Problem?

                Afaik müsste da etwas in einer Conf-Datei des Webservers geändert werden, auf die ich leider keinen Zugriff habe.

                AFAIK und ...

                Auch befindet sich mein Webspace auf einem kostenlosen Server (xtreemhost.com), und ich nehme nicht an das dort soetwas möglich ist.

                ... "ich nehme nicht an" sind GANZ schlechte Grundlagen für eine Problemlösung. Probier's doch einfach aus - kaputtmachen kannst Du doch nix!

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                1. Nochmals Hi EKKi,

                  Ähm ... die Datei einfach umbenennen? Und dann auf den Webserver schieben und ausprobieren? Wo liegt das Problem?

                  Ähm dir ist schon bewusst das der Server irgendwo her wissen muss der dir dann eine Datei ist oder? Naja ich habe jetzt mal eine Datei "de" erstellt, mit dem Inhalt:

                  <?php  
                   echo $_SERVER['PATH_INFO'];  
                  ?>
                  

                  Rufe ich jetzt Addresse http://domain/de/hallo.html auf erhalte ich einen 404 Error.

                  Mfg Zul

                2. echo $begrüßung;

                  Das PHP-Skripte kein .php am Ende haben müssen weiß ich. Nur wie ich das .php wegnehmen kann weiß ich leider nicht :(.
                  Ähm ... die Datei einfach umbenennen? Und dann auf den Webserver schieben und ausprobieren? Wo liegt das Problem?

                  Dass der Webserver nicht weiß, was er mit der Datei "de" anfangen soll. Normalerweise erkennt er es an der Dateiendung, dass beispielsweise .php an PHP übergeben werden soll. Man kann, sofern es erlaubt ist, aber jeder beliebigen Datei einen speziellen MIME-Type verpassen.

                  <Files foo>
                      ForceType application/x-httpd-php
                    </Files>

                  Der hier angegebene Wert bei ForceType ist der Default-Wert, wenn PHP als Modul eingebunden läuft. Dieser Wert kann vom Provider anders genannt worden sein. Man bekommt ihn nicht anders raus als den Provider zu fragen. Vielleicht hat aber auch schon jemand für den betreffenden Provider diese Information im Netz veröffentlicht.

                  echo "$verabschiedung $name";

                  1. Mahlzeit,

                    Wo liegt das Problem?

                    Dass der Webserver nicht weiß, was er mit der Datei "de" anfangen soll.

                    So weit man Zuls Postings entnehmen kann, kann er .htaccess-Dateien benutzen. Also sollte das doch kein Problem darstellen.

                    MfG,
                    EKKi

                    --
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                    1. echo $begrüßung;

                      Wo liegt das Problem?
                      Dass der Webserver nicht weiß, was er mit der Datei "de" anfangen soll.

                      Du kürzt zu viel und sinnentstellend weg. Deine Aussage, einfach die Datei foo.php nach foo umzubenennen beinhaltete das Problem, dass das nicht zu Zuls Problemlösung reicht. Es fehlte noch ein ForceType oder eine anderweitige Art der MIME-Type-Zuweisung.

                      So weit man Zuls Postings entnehmen kann, kann er .htaccess-Dateien benutzen. Also sollte das doch kein Problem darstellen.

                      Damit, wie auch von mir geantwortet, ist es nun möglich, dass es kein Problem mehr ist. Jedoch beinhaltet die Möglichkeit, eine Per-Verzeichnis-Konfigurationsdatei (.htaccess) nutzen zu können, nicht in jedem Fall alle Freiheiten. Neben den Direktiven, die von Haus aus nicht in der .htaccess stehen dürfen, gibt es noch die Möglichkeit, die Verwendung bestimmter Direktivengruppen nicht zu erlauben. Es sind also noch genügend potenzielle Fallstricke vorhanden.

                      echo "$verabschiedung $name";

                      1. Hi,

                        Deine Aussage, einfach die Datei foo.php nach foo umzubenennen beinhaltete das Problem, dass das nicht zu Zuls Problemlösung reicht. Es fehlte noch ein ForceType oder eine anderweitige Art der MIME-Type-Zuweisung.

                        Ausserdem muss, zumindest auf einem 2er-Apache, auch noch die AcceptPathInfo-Direktive entsprechend konfiguriert sein.

                        MfG ChrisB

              2. Hallo,

                Vielleicht klammerst du dich zu fest an die Vorstellung, ein PHP-Script müsste immer mit ".php" enden. Das ist nicht so!
                Das PHP-Skripte kein .php am Ende haben müssen weiß ich. Nur wie ich das .php wegnehmen kann weiß ich leider nicht :(.

                Wie EKKi schon sagte: Durch Umbenennen. ;-)
                Aber Spaß beiseite:

                Afaik müsste da etwas in einer Conf-Datei des Webservers geändert werden, auf die ich leider keinen Zugriff habe.

                Auch nicht auf die lokale .htaccess? Wie machst du dann deine mod_rewrite-Geschichten?

                Gibt es die Möglichkeit soetwas auch mit einer .htaccess-Datei zu realisien? Wenn Ja, wie?

                <Files "de">
                ForceType application/x-httpd-php
                </Files>
                <Files "en">
                ForceType application/x-httpd-php
                </Files>

                So long,
                 Martin

                --
                F: Was ist schneller: Das Licht oder der Schall?
                A: Offensichtlich der Schall. Wenn man den Fernseher einschaltet, kommt immer erst der Ton, und dann erst das Bild.
                1. Hi Martin,

                  Doch auf eine .htacces Datei habe ich zugriff und mit deinem Code klappt es jetzt auch super! Danke!

                  Mfg Zul