Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[htaccess/PHP] URL met afbeelding-extensies rewrite niet

Pagina: 1
Acties:

  • SimonBlok
  • Registratie: Maart 2006
  • Laatst online: 21-11 21:05
Goeiemorgen allemaal,

Ik heb hier een zelfgeschreven MVC-framework. Alle requests verwerk ik door de URL uit te lezen en zo de juiste controllers aan te roepen. Dit doe ik met de volgende htaccess:

code:
1
2
3
4
5
6
7
8
9
RewriteEngine on

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

RewriteRule ^(.*)$ /projecten/xxxxxxx/index.php?route=$1 [L,QSA]

ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html


Alle URLs die niet verwijzen naar een bestaande map of bestand, zouden hiermee naar index.php?route=url geschreven moeten worden. Dit gaat in de meeste gevallen ook goed, behalve als de URL eindigt met een extensie van een afbeelding (jpg,gif,png).

De volgende URL verwijst niet naar een bestaande afbeelding..

http://www.domein.nl/beheer/controller/action/path/naar/afbeelding.jpg

Als ik dit aanroep lijkt mijn hele sessie verlopen te zijn, terwijl ik zou verwachten dat netjes de gevraagde controller met bijgehorende actie aangeroepen zou worden. Haal ik de extensie weg, dan gaat alles goed.

Ik heb al veel gegoogled, maar weet niet precies waar ik naar op zoek ben. Ik kwam al uit op de apache spelling module, die zou roet in het eten kunnen gooien, maar het lijkt er niet op dat het uitzetten hiervan mijn probleem oplost.

Overigens treedt bovenstaand probleem alleen op een bepaalde server op, lokaal gaat het goed. Het lijkt me dus een php/apache configuratie-probleem. Heeft iemand een idee?

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 21-11 15:31

TheNephilim

Wtfuzzle

Misschien heb je wat aan het volgende:

code:
1
2
3
4
5
6
7
8
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>


Deze word gebruikt door Wordpress en stuurt ook plaatjes naar de index.php

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 20:03

MueR

Admin Devschuur® & Discord

is niet lief

Je kan beter gewoon FallbackResource gebruiken, dat scheelt performance.

Anyone who gets in between me and my morning coffee should be insecure.


  • SimonBlok
  • Registratie: Maart 2006
  • Laatst online: 21-11 21:05
Met de rewrite van Wordpress kan ik niet veel denk ik, deze schrijft alle requests gewoon om naar index.php, zonder dat het request zelf meekomt. Deze kan ik uiteraard wel via de $_SERVER vars opvragen, maar dat gaat voor nu even tever.

FallbackResource kende ik nog niet, maar voor zover ik dat zie gaat bovenstaande hier ook voor op?

Ik heb het probleem wat verder kunnen isoleren. http://www.domein.nl/index.php?route=file.jpg gaat mis; http://www.domein.nl/index.php?route=file.jp gaat goed, want geen bekende extensie. Ik kan dus iets wat op een geldige file lijkt niet meegeven in de GET?

Nogmaals, dit treedt op mijn lokale machine niet op.

  • TheDevilOnLine
  • Registratie: December 2012
  • Laatst online: 18-11 16:17
Krijg je een error als het fout gaat? Zet je zelf een Content-type voor je dat output? Het kan bijvoorbeeld zijn dat mod_mime roet in het eten gooit:
This module is used to associate various bits of "meta information" with files by their filename extensions. This information relates the filename of the document to it's mime-type, language, character set and encoding. This information is sent to the browser, and participates in content negotiation, so the user's preferences are respected when choosing one of several possible files to serve.

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 21-11 15:31

TheNephilim

Wtfuzzle

MueR schreef op woensdag 13 maart 2013 @ 10:47:
Je kan beter gewoon FallbackResource gebruiken, dat scheelt performance.
Die kende ik nog niet, nice! :D
Pagina: 1