Fritz: Anzeige von URLs mit angehängtem /irgendwas

Hallo,

vorab: ich weiß nicht, ob HTTP der richtige Themenbereich ist.
Ich weiß überhaupt nicht, wo ich mit meinem Problemchen ansetzen soll:

Wenn ich an die URL einer PHP-Seite einen slash und dann irgendwas anhänge,
Beispiel: http://www.example.com/index.php/irgendwas
dann wird die Seite aufgerufen, aber ohne CSS
Relative Links auf der so aufgerufenen Seite funktionieren nicht mehr.

Was kann ich dagegen tun?
Wobei mir nicht klar ist, wer solche URLs aufruft. Sind das eh nur böse Bots?
Dann bleibt zumindest das Problem, dass solche Aufrufe meine Logs zumüllen.

Gruß Fritz

--
ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
http://webdesign.weisshart.de/
  1. Hallo Fritz,

    seltsame Sache, zuerst dachte ich du wärst ein ganz krasser Anfänger.
    Dann habe ich deine Seite besucht und komme nun zu dem Schluss, dass ich wohl deine Frage falsch verstehe. Kannst du mal ein kokretes Beipiel bringen anhand einer URL von dir?

    Heinz

    1. Hallo,
      Kannst du mal ein kokretes Beipiel bringen anhand einer URL von dir?

      Muß nicht von mir sein:
      Nimm http://www.drweb.de/verwaltung/index.php (ich poste bewusst keinen Link)
      und dann
      http://www.drweb.de/verwaltung/index.php/irgendwas

      Gruß Fritz

      --
      ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
      http://webdesign.weisshart.de/
      1. Kannst du mal ein kokretes Beipiel bringen anhand einer URL von dir?

        Muß nicht von mir sein:

        Also du selbst hast dieses Problem gar nicht?

        Nimm http://www.drweb.de/verwaltung/index.php (ich poste bewusst keinen Link)
        und dann
        http://www.drweb.de/verwaltung/index.php/irgendwas

        Beide URLs lassen das gleiche erkennen, kein stylesheet bei Beiden,
        also auch kein Unterschied.

        Heinz

        1. Nimm http://www.drweb.de/verwaltung/index.php (ich poste bewusst keinen Link)
          http://www.drweb.de/verwaltung/index.php/irgendwas
          Beide URLs lassen das gleiche erkennen, kein stylesheet bei Beiden,
          also auch kein Unterschied.

          Sicher? Ich habe bei der ersten sehr wohl ein Stylesheet, bei der zweiten nicht.

          --
          Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
          Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:|
          1. Nimm http://www.drweb.de/verwaltung/index.php (ich poste bewusst keinen Link)
            http://www.drweb.de/verwaltung/index.php/irgendwas
            Beide URLs lassen das gleiche erkennen, kein stylesheet bei Beiden,
            also auch kein Unterschied.

            Sicher? Ich habe bei der ersten sehr wohl ein Stylesheet, bei der zweiten nicht.

            Hast recht, ein kleiner Slash macht den Unterschied.

            Ich habe folgende Seiten verglichen:

            http://www.drweb.de/verwaltung/index.php/  (slash am Ende)
            http://www.drweb.de/verwaltung/index.php/irgendwas

            Heinz

  2. Hi,

    vorab: ich weiß nicht, ob HTTP der richtige Themenbereich ist.

    es ist zumindest nicht ganz falsch. Die Frage hätte ebensogut in den Themenbereich SERVER oder sogar PHP gepasst, aber HTTP ist nicht übel.

    Wenn ich an die URL einer PHP-Seite einen slash und dann irgendwas anhänge,
    Beispiel: http://www.example.com/index.php/irgendwas
    dann wird die Seite aufgerufen, aber ohne CSS
    Relative Links auf der so aufgerufenen Seite funktionieren nicht mehr.

    Richtig, können sie auch nicht. Mache dir klar, was da wirklich passiert.

    Mal angenommen, dein Stylesheet liegt in /styles/default.css und wird im Dokument als "styles/default.css" referenziert. Das PHP-Script liegt im Domain Root, also in /index.php und bekommt den zusätzlich übergebenen Rattenschwanz als $_SERVER['PATH_INFO'] geliefert.
    Von diesem Mechanismus weiß aber dein Browser nichts. Er sieht nur, dass er eine HTML-Ressource von /index.php/irgendwas abgerufen hat und "glaubt" intern, es handle sich um die Datei "irgendwas" im Verzeichnis "/index.php/". Jetzt soll er von dieser URL ausgehend noch eine weitere relativ adressierte Ressource abrufen, also versucht er aus der Dokument-URL das Basis-Verzeichnis zu isolieren und hängt den Namen der zusätzlichen Ressource an. Er bekommt dann als URL für das Stylesheet "/index.php/styles/default.css", fordert diese Ressource an - und greift ins Leere.

    Was kann ich dagegen tun?

    Adressiere deine eingebundenen Stylesheets, Bilder, Javascripts u.ä. nicht relativ, sondern absolut. Fordere nicht "styles/default.css" an, sondern stattdessen "/styles/default.css", und alles wird gut. ;-)

    Wobei mir nicht klar ist, wer solche URLs aufruft. Sind das eh nur böse Bots?

    Nö, auch Webautoren, die benutzerfreundliche URLS ohne '?' und '&' generieren wollen.

    Dann bleibt zumindest das Problem, dass solche Aufrufe meine Logs zumüllen.

    Ach so, du meinst, *andere* rufen solche URLs bei dir ab? Tja, dagegen kannst du wohl nicht viel machen.

    So long,
     Martin

    --
    Die letzten Worte des stotternden Beifahrers:
    Frei... frei... frei... freilich kommt da was!!
    1. Hallo Martin,

      Adressiere deine eingebundenen Stylesheets, Bilder, Javascripts u.ä. nicht relativ, sondern absolut. Fordere nicht "styles/default.css" an, sondern stattdessen "/styles/default.css", und alles wird gut. ;-)

      _das_ war der Hinweis, den ich gesucht habe. Danke schön.
      Aber bis _alles_ gut ist, werde ich wohl noch einige Dateien in die Hand nehmen müssen :-(
      Dass auch /styles/... eine "absolute" Adressierung ist, war mir unbekannt.

      Nö, auch Webautoren, die benutzerfreundliche URLS ohne '?' und '&' generieren wollen.

      Hm? aber die werden das dann wohl mit ihrer eigenen Site machen, und nicht beim Aufruf meiner bescheidenen Site. Oder doch?
      NB: hast du mal ein gutes Tutorial zu dem Thema?

      Gruß Fritz

      --
      ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
      http://webdesign.weisshart.de/