2014-09-21 4 views
6

Ich möchte eine .htaccess Datei verwenden, um zu überprüfen, ob der angeforderte Pfad eine Datei im Verzeichnis public/ ist. Wenn ja, servieren Sie es, ansonsten schicken Sie eine Anfrage an /index.php. Ich kann das nicht zur Arbeit bringen..htaccess: Statische Dateien bereitstellen, alles andere an index.php weiterleiten

Hier ist, was ich habe:

Options +FollowSymLinks 
RewriteEngine on 

Options -Indexes 

RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f 
RewriteRule^%{DOCUMENT_ROOT}/public%{REQUEST_URI} [L] 

RewriteRule^index.php [QSA,L] 

z.B. http://example.com/css/style.css sollte Apache dienen /public/css/style.css, weil es eine Datei ist, die existiert, aber http://example.com/css/style.bad sollte an /index.php gesendet werden.

Antwort

1

Anscheinend [L] does not work as I expected. Mit dem im Verstand, und eine Menge von Versuch und Irrtum, schaffte ich es, etwas zu finden, das funktioniert:

RewriteEngine On 

RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f 
RewriteRule^public%{REQUEST_URI} [L] 

RewriteCond %{REQUEST_URI} !^/public/ 
RewriteRule^index.php [QSA,L] 
6

Dieser Code sollte wie auf Ihrer Seite zu erwarten Arbeits

Options +FollowSymLinks -MultiViews -Indexes 

RewriteEngine On 
RewriteBase/

RewriteCond %{DOCUMENT_ROOT}/public/$1 -f 
RewriteRule ^(.*)$ public/$1 [L] 

RewriteCond %{THE_REQUEST} \s/public/ [NC,OR] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L,QSA] 
+0

, das funktioniert! Vielen Dank. Ich habe aber gerade gemerkt, dass 'style.css' unter * both */css/style.css() und */public/css/style.css() verfügbar ist. Technisch sollte letzteres auch zu 'index.php' routen, da'/public/public/css.style.css' keine Datei ist. Das bedeutet auch, dass '/ public/xxx' einen Apache 404 anstatt des benutzerdefinierten, den ich in meiner' index.php' Datei konfiguriert habe, entwerfe. Keine Möglichkeit, das zu beheben, oder? – mpen

+1

Ich habe meine Antwort bearbeitet, um Ihren Kommentar zu berücksichtigen –

+1

Sie sind magisch, meine Liebe. Du hast mich gerettet. Danke vielmals –

Verwandte Themen