kostenloser Webspace werbefrei: lima-city


htaccess - Rewrite mit mehreren Ebenen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    dipoxegames

    dipoxegames hat kostenlosen Webspace.

    Guten Abend liebe Community,

    ich sitze seit mehreren Stunden an einem echt doofen Problem. Und zwar geht es um einen rewrite womit ich von domain.de/page / domain.de/page/otherpage / domain.de/page/0/10 intern auf index.php?arg0={0}&arg1={1}&arg2={2} weiterleite mit einem rewrite. Der Code sieht folgendermaßen aus:
    Options -Indexes +FollowSymLinks -MultiViews
    
    [...]
    
    # Redirect to index.php
    <IfModule mod_rewrite.c>
    	RewriteEngine on
    	RewriteBase /
    	#Options +FollowSymLinks
    	RewriteCond %{REQUEST_FILENAME} !-d
    	RewriteCond %{REQUEST_FILENAME} !-f
    	RewriteCond %{REQUEST_FILENAME} !-l
    	RewriteRule ^([a-z]+)(?:\/([a-z0-9]+))?(?:\/([a-z0-9]+))?$ /index.php?arg0=$1&arg1=$2&arg2=$3 [L,NC]
    </IfModule>
    
    [...]

    Wird nun die Seite via domain.de/page aufgerufen, so werden die CSS / JS / Bild Dateien richtig verlinkt, wenn ich aber die Seite via domain.de/page/otherpage oder domain.de/page/0/10 aufrufe, so werden die Dateien nicht mehr im Wurzelverzeichnis gesucht, sondern in /page/ oder /page/0/ und somit werden die CSS / JS / Bild Dateien nicht mehr gefunden :/

    Hat da wer eine Lösung für dieses Problem?
    Bin für jede Hilfe dankbar :)

    MfG Kevin
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. mein-wunschname

    mein-wunschname hat kostenlosen Webspace.

    Ich kann in deiner .htaccess eigentlich keine Ursache für das von dir beschriebene Problem erkennen. Liegt es eventuell an der Art und Weise, wie du dein CSS/JS einbindest?
  4. Autor dieses Themas

    dipoxegames

    dipoxegames hat kostenlosen Webspace.

    Danke für deine schnelle Antwort

    Also ich binde die Dateien mit relativen Pfaden ein, sprich:
    <link rel="shortcut icon" type="image/x-icon" href="./favicon.ico">
    
    [...]
    
    <link rel="stylesheet" href="./css/main.css">
    [...]
    <link rel="stylesheet" href="./css/bootstrap.theme.css">
    
    [...]
    
    <script src="./js/jquery.pjax.js"></script>
    <script src="./js/navbar.js"></script>
    <script src="./js/navigation.js"></script>

    Sollte ich auf absolute Pfade wechseln?

    MfG
  5. insight-miami

    insight-miami hat kostenlosen Webspace.

    dipoxegames schrieb:
    Danke für deine schnelle Antwort

    Also ich binde die Dateien mit relativen Pfaden ein, sprich:
    <link rel="shortcut icon" type="image/x-icon" href="./favicon.ico">
    
    [...]
    
    <link rel="stylesheet" href="./css/main.css">
    [...]
    <link rel="stylesheet" href="./css/bootstrap.theme.css">
    
    [...]
    
    <script src="./js/jquery.pjax.js"></script>
    <script src="./js/navbar.js"></script>
    <script src="./js/navigation.js"></script>

    Sollte ich auf absolute Pfade wechseln?

    MfG


    nicht unbedingt, mußt halt nur entsprechend die Verlinkung dahingehend ändern, daß sie immer auf die gleiche Datei zugreifen ...

    also z.B.

    wenn die main.css abgelegt ist unter domain.de/css/main.css

    dann reicht es bei domain.de/page/0/, die mit ./css/main.css zu verlinken
    bei domain.de/page/0/10/ muss es aber lauten ././css/main.css

    um das zu umgehen, kannst Du natürlich auch, wie selbst angedeutet auf absolut wechseln und immer komplett verlinken ...

    Beitrag zuletzt geändert: 15.10.2015 8:42:28 von insight-miami
  6. mein-wunschname

    mein-wunschname hat kostenlosen Webspace.

    dipoxegames schrieb:

    Sollte ich auf absolute Pfade wechseln?

    MfG


    Ja, also ohne Punkt

    /css/style.css




  7. Ja das ist so das kleine Probleme, wenn man sprechende URL erstellen möchte.

    PHP Dateien werden von dem Standpunkt der aufrufenden Datei aufgerufen.
    Aber in HTML wird es nach dem Standpunkt des Browser aufgerufen. Also mit jedem / verschiebt sich die aufrufende Instanz. Und daher die Probleme, die du hast.

    Es gibt dazu 2 Lösungen.

    1. Du legst mit PHP einen Grundpfad fest und legst diesen in einer Konstanten ab.
    2. Du verlinkst mit absoluten Pfaden, je nach dem wie dein kompletter URL Aufbau ist, eventuell sogar gleich mit Domain davor.

    Wenn du dir mal ein paar fertige Scripte aus CMS-Systemen oder ähnlichem anschaust, dann findest du sicherlich auch deinen bevorzugten Stil. Schöner ist natürlich die Lösung mittels PHP, einfacher eine direkte Verlinkung.
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!