1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

mod_rewrite - Problem mit nicht absolut eingebundenen Bildern oder auch Links

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von ChristianH, 22.10.07.

  1. ChristianH

    ChristianH Jamba

    Dabei seit:
    26.09.06
    Beiträge:
    57
    Vorab: ich bin ein mod_rewrite-Anfänger.

    Folgendes-Problem:

    URL:
    http://beta.domain.de/nachrichten/1234/Das_ist_ein_Titel.html

    soll weitergeleitet werden nach
    /index.php?id=shownews&artnr=1234&titel=Das_ist_ein_Titel

    Ich erreiche das erfolgreich durch:
    Code:
    RewriteRule ^nachrichten/(.*)/(.*)\.html/?$ /index.php?id=shownews&artnr=$1&titel=$2 [L]
    Es hat jedoch einen Schönheitsfehler: es kommt vor, dass meine Quelltexte keine absoluten Links enthalten, wenn beispielsweise Bilder eingebunden werden.

    Beispiel:
    Code:
    <img src="bilder/news/blabla.jpg" alt="XY />
    Und nun habe ich den Salat: das Bild wird nun nicht unter http://beta.domain.de/bilder/news/blabla.jpg gesucht, sondern unter http://beta.domain.de/nachrichten/1234/bilder/news/blabla.jpg

    Desgleichen bei Links, die nicht absolut gesetzt sind wie
    Code:
    <a href="galerie/">Klick</a>
    . Verlinkt wird nun nicht mehr auf beta.domain.de/galerie/, sondern beta.domain.de/nachrichten/1234/galerie/

    Auch das führt natürlich ins Leere.

    Kann ich solche Dinge mit mod_rewrite in den Griff bekommen? Klar: beste und immer zu verwendende Lösung ist, KEINE nicht absolut definierten Links zu verwenden (ein / vor den dynamischen Links würde da ja schon reichen), aber ich würde gern auch diese unvorteilhaft definierten Verknüpfungen lauffähig erhalten, ohne elendig viele Daten ändern zu müssen (ohne / überall einzufügen).
     
  2. zeno

    zeno Lane's Prinz Albert

    Dabei seit:
    05.11.05
    Beiträge:
    4.898
    Die realtiven Links sollten auch garnicht von mod_rewrite berücksichtigt werden, da du ja deine RewriteRule mit ^nachrichten beginnst.. ich gugg später nochmal.. muss jetzt weg..
     
  3. ma.buso

    ma.buso Châtaigne du Léman

    Dabei seit:
    16.04.05
    Beiträge:
    824
    Das hat nichts mit mod_rewrite zu tun, das liegt am Browser, der denkt, in /nachrichten zu sein, und somit die relativen Pfade einfach dranhängt :)

    @ ChristianH:

    Erstelle eine weitere Regel, die alle URLs mit /nachrichten, die nicht deinen vorangegangen Regeln entsprechen, auf die URL ohne /nachrichten umleitet.
    Soweit ich weiß, führt Apache die erste zutreffende Regel aus, sodass
    Code:
    RewriteRule ^nachrichten/(.*)$ /$1
    oder so ähnlich reichen müsste.
    Für jeden weiteren Ordner, den du dem Browser vorgaukelst ebenso.
     
  4. creative7even

    creative7even Jerseymac

    Dabei seit:
    23.02.05
    Beiträge:
    454
    oder definiere ganze einfach ein

    Code:
    <base href="http://mydomain.com/mywebsiteroot/" />
    
     
  5. ChristianH

    ChristianH Jamba

    Dabei seit:
    26.09.06
    Beiträge:
    57
    Herzlichen Dank Euch allen! :) Ihr habt mir sehr weiter geholfen.
     

Diese Seite empfehlen