kostenloser Webspace werbefrei: lima-city


Problem mit htaccess-Weiterleitung

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    noxious

    Kostenloser Webspace von noxious

    noxious hat kostenlosen Webspace.

    Zum Verständnis: Ich habe eine Ordnerstruktur, die in etwa so aussieht:
    ./private/models/*.php
    ./private/scripts/*.php
    ./public/img/*.jpg
    ./public/css/*.css
    ./public/index.php
    ./public/.htaccess
    ./.htaccess

    Wobei
    ./
    natürlich das Document-Root anzeigt. Nun habe ich im Wurzelverzeichnis die eine .htaccess-Datei, welche dafür sorgt, dass sämtliche Anfragen auf den public-Ordner umgeleitet werden. Bei mir sieht das ganze dann so aus:
    <IfModule mod_rewrite.c>
    	RewriteEngine on
    	RewriteRule    ^$    public/    [L]
    	RewriteRule    (.*) public/$1    [L]
     </IfModule>

    Im Public-Ordner ist dann eine weitere .htaccess, welche sämtliche Anfragen (außer auf bestehende Dateien auf die index.php umleitet, sowie die indizierung von (Unter-)ordnern verhindern soll:
    Options All -Indexes
    <IfModule mod_rewrite.c>
    	RewriteEngine On
    	RewriteCond %{REQUEST_FILENAME} !-f
    	RewriteRule ^(.*)$ index.php?url=$1 [PT,L]
    </IfModule>

    So weit so gut. Das Problem tritt nun vorwiegend dann auf, wenn ich versuche auf einen Unterordner wie
    ./public/css
    über
    http://domain.tld/css
    (ohne slash hinten ) zuzugreifen. Denn dann zeigt er dummerweise die vollständige URL, also
    http://domain.tld/public/css/
    . Dies passiert jedoch nicht, wenn ich bei der genannten URL hinten einen Slash anhänge.

    Nun, da ich mir ziemlich sicher bin, dass der Computer genau das tut, was ich ihm sage, liegt der Fehler wohl bei mir und ich habe die Rewrite-Rules wohl nicht so gut verstanden wie ich bisher dachte. Als Ergebnis hätte ich gerne, dass er bestenfalls auch das /css einfach als url an die index.php anhängt, wenn daraus nichts wird, dann doch zumindest, dass er mir den pfad
    http://domain.tld/css
    anstelle des Pfades mit public anzeigt. ( Den Public-Ordner sollte er möglichst komplett vergessen. )

    Kann mir da jemand helfen?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. t*************s

    RewriteRule    ^$    public/    [L]
    RewriteRule    (.*) public/$1    [L]

    Was soll das machen? Ich vermute mal zu suchst folgendes:
    RewriteRule ^(.*) public/$1 [QSA,L]

    So mach ich das zumindest immer bei meinen Projekten.
  4. 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!