Problem mit htaccess-Weiterleitung
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
all
anfrage
bestehende dateien
code
datei
domain
ergebnis
folgendes code
http
index
jemand
komplett vergessen
ordner
pfad
private models
problem
projekt
sagen
treten
url
-
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
über./public/css
(ohne slash hinten ) zuzugreifen. Denn dann zeigt er dummerweise die vollständige URL, alsohttp://domain.tld/css
. Dies passiert jedoch nicht, wenn ich bei der genannten URL hinten einen Slash anhänge.http://domain.tld/public/css/
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
anstelle des Pfades mit public anzeigt. ( Den Public-Ordner sollte er möglichst komplett vergessen. )http://domain.tld/css
Kann mir da jemand helfen? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage