2016-07-26 10 views
1

Ich habe eine .htaccess-Datei in meinem DocumentRoot.htaccess nicht URL-Rewriting, wenn Bildstelle existiert

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*)$ index.php?request=$1 [L,QSA] 

Wenn jedoch der Benutzer auf die URL zu gehen versucht /images/1/image.png dann werden sie das Bild gezeigt, anstatt der Anfrage wird neu geschrieben und an index.php mit 1 und image.png als $_GET Parameter gesendet.

Gibt es eine Möglichkeit, dies zu ändern, wenn Benutzerpfade direkt zu einem vorhandenen Bild werden sie stattdessen an eine meine index.php-Datei gerichtet, wie ich Routing und überprüfen Sie die Berechtigungen vor dem Anzeigen dieses Bildes zuerst behandeln möchte.

Hinweis: Ich möchte nicht einfach den Zugriff verweigern, ich möchte nur von dem Bild wegrouten, wo ich dann die Berechtigungen überprüfen und dann anzeigen kann, wenn die Berechtigungen korrekt sind.

+1

'-f' testet, ob die angeforderte URL eine Datei ist, die existiert. '! -f' erfordert grundsätzlich, dass die URL nicht existiert, also wird jedes Bild, das existiert, durch die Regel ausgeschlossen. –

+0

@MarcB Ich habe das probiert, aber meine CSS/JS-Dateien haben aufgehört zu laden, vermutlich weil sie neu geschrieben wurden, weshalb ich die! -f-Regel an erster Stelle brauchte. –

Antwort

1

können Sie diese Regel verwenden:

RewriteEngine on 

RewriteRule ^images/(.*)$ index.php?request=$1 [L,QSA,NC] 

RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?request=$1 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-f vermeidet alle vorhandenen Dateien neu zu schreiben.

+0

Dies scheint zu stoppen meine CSS-Dateien laden, gibt es eine Möglichkeit, dies nur auf dieses '/ images' Verzeichnis anzuwenden? Abgesehen davon, sieht vielversprechend aus. –

+2

@Jackhardcastle ja, setze es in dein images Verzeichnis und lass dein anderes in deinem root und füge ein '/' infront von 'index.php' ' – cmorrissey

+0

@Jackhardcastle hinzu: Probiere meine aktualisierte Regel jetzt unter der Annahme, dass du keine .htaccess hast im 'images /' Verzeichnis. – anubhava