[PHP/?] Umleitung Bild -> PHP möglich?

tpp

Well-known member
ID: 14548
L
9 Mai 2006
115
2
gibt es irgendeine möglichkeit, dass man einen bildaufruf auf eine php-datei umleiten kann?

ich erklärs mal:
ich möchte nicht, dass ein bild unter einer adresse:
https://domain/bild.jpg
aufgerufen werden kann...

wenn so ein aufruf geschieht soll der user der das so aufruft beispielsweise auf bild.php umgeleitet werden...diese php datei soll aber irgendwie wissen welches bild der user betrachten wollte, da die das bild anzeigen soll, aber halt noch andere infos anzeigen soll...

kurz also so: 1234.jpg -> bild.php?x=1234

mir fällt da jetzt leider nichts dazu ein...ne umleitung kann man ja bestimmt per .htaccess machen, aber wie sag ich der php datei dann den dateinamen?

kann mir da jemand helfen?
 
Zuletzt bearbeitet:
hab ich schon, aber ich seh da nicht so richtig durch wie ich dann den aufgerufenen dateinamen als parameter an die php datei übergeben kann.

vielleicht is früh um 4 auch nicht so die richtige zeit dafür ^^
ich versuch mich da jetzt nochmal durchzuschlagen ;)
 
ich habe in die .htaccess jetzt das hier reingeschrieben:

Code:
RewriteEngine on
RewriteRule (([0-9]+).(jpg|png|gif))$ pic.php?pic=$1

es funktioniert ja auch soweit, dass wenn ich 1234.jpg aufrufe es dann weitergeleitet wird auf pic.php?pic=1234.jpg
auf der php seite habe ich dann mit <img.... das bild eingebunden aber es wird nicht angezeigt.
schmeiße ich die .htaccess aus dem ordner raus dann zeigt die php das bild korrekt an.
unterdrückt das auch bilder die ich auf der seite einbinde?
 
einfach mal googlen... oder augen im forum aufmachen. das findet man eigentlich überall im gleichem atemzug zu mod_rewrite...

zb mal hier was aus dem forum...
PHP:
RewriteRule witz-(.*)\.html$ /redir.php?witz=$1

das passt du einfach an deine bedürfnisse an
PHP:
RewriteRule (.*)\.jpg$ /bild.php?id=$1

und feritg. ok fertig ist gelogen... du bekommst sicher probleme mit anderen jpg bildern. um zb nur bilder aus dem / zu nehmen und unterverzeichnisse zu ignorieren müsstest du das ganze so anpassen.
PHP:
RewriteRule (.[^/])\.jpg /bild.php?id=$1

jedenfalls so in der art... ob das jetzt 100% richtig ist weiß ich nicht.
 
Code:
RewriteEngine ON
RewriteCond %{REQUEST_URI} -f
RewriteCond %{REQUEST_URI} ^\.(jgp|gif|png|jpeg)$
RewriteCond %{REQUEST_URI} !^bild\.php?bild=(.*)$
RewriteRule ^(.*)\.(jgp|gif|png|jpeg)$ bild.php?bild=$1.$2 [NC,L]

Wenn du willst das der user die url der bild.php sieht im Browser setze dieses Flag [NC,R,L]

Wenn das net geht prüf ob das mod_rewrite modul geladen ist. Müsste eigentlich funktionieren wenn ich net grad nen denkfehler drinhab.
 
Code:
RewriteEngine ON
RewriteCond %{REQUEST_URI} -f
RewriteCond %{REQUEST_URI} ^\.(jgp|gif|png|jpeg)$
RewriteCond %{REQUEST_URI} !^bild\.php?bild=(.*)$
RewriteRule ^(.*)\.(jgp|gif|png|jpeg)$ bild.php?bild=$1.$2 [NC,L]

Wenn du willst das der user die url der bild.php sieht im Browser setze dieses Flag [NC,R,L]

Wenn das net geht prüf ob das mod_rewrite modul geladen ist. Müsste eigentlich funktionieren wenn ich net grad nen denkfehler drinhab.

funktioniert leider nicht...
mit den lösungen davor wird das bild im img-tag nicht angezeigt und mit der letzten lösung findet gar keine umleitung statt...
hat eventuell noch jemand nen vorschlag?
 
So ich bins nochmal habs getestet bei mir funzt es

Code:
<IfModule mod_rewrite.c>
	RewriteEngine On
</IfModule>
RewriteCond %{REQUEST_URI} \.(jpg|gif|png|jpeg)$
RewriteCond %{REQUEST_URI} !bild\.php?bild=(.*)$
RewriteRule ^(.*)\.(jpg|gif|png|jpeg)$ /bild.php?bild=$1.$2 [NC,R,L]

link zum sehen

die bild muss im root der domain liegen wenn du das nicht so haben willst entferne den slash "/bild.p..." oder gib direkt url an.
 
ja..also die umleitung funktioniert ja...nur wird das bild dann nicht angezeigt

hier mal der link:
LINK

zur veranschaulichung hier mal die htaccess-datei und die php datei:

die pic.php:
Code:
<?
  echo "BlaBlaBlaBla";
  echo "<br><br>";
  if (isset($_GET["pic"])) {
    echo "<img src=\"".$_GET["pic"]."\">";
  } else {
    echo "Kein Bild aufgerufen";
  }

?>

und die .htaccess:
Code:
<IfModule mod_rewrite.c>
RewriteEngine On
</IfModule>
RewriteCond %{REQUEST_URI} \.(jpg|gif|png|jpeg)$
RewriteCond %{REQUEST_URI} !pic\.php?pic=(.*)$
RewriteRule ^(.*)\.(jpg|gif|png|jpeg)$ pic.php?pic=$1.$2 [NC,L]

eigentlich müsste das doch so passen, oder?
oder wird hier auch der aufruf im img-tag blockiert? das ist ja hier mein hauptproblem
 
Schau dir nochmal meinen link an dort geht es. Ich habe die php datei in dem imageordner und die htaccess auch bei dir scheint der pfad nicht zu stimmen. Also das der das bild net findet.

Bau mal in deine php Datei den absoluten Pfad ein ala h\ttp://www.domain.com/..... wenn es dann nicht geht must du das Bild separat freigeben. Abder da es bei mir so geht kann ich mir das nicht vorstellen. Evtl auch falsche CHMOD Rechte.
 
bei deinem link wird doch auch kein bild angezeigt...oder läuft hier bei mir was total daneben?

und der pfad ist schon korrekt...wenn ich pic.php?pic=116...jpg aufrufe ohne das die .htaccess datei da ist funktioniert es ja...

merkwürdig...
 
Zuletzt bearbeitet:
Also
1. hast recht ich hatte es nur noch im Cache
2. habsch noch bissi rumgespielt

Ergebnis:

Komischerweise werden nur Bilder angezeigt die nicht in dem Order der htaccess oder in tieferen ebenen liegen angeziegt.

Lösung:
Google nutzen oder hier nochmal warten vielleicht kent einer ne Lösung oder leg 5 Ordern an und dort rein deine htaccess für die Bilder. Aber ich finde des quatsch es muss auch einfacher gehen. Hab nur noch keine Lösung gefunden. Aber ich such mal noch nen bissi rum.

*edit
probier es mal mit
Order deny,allow
Allow from all
was anderes fällt mir grad net ein. Ich kanns bei mir net testen habs auf meinem Server geblockt sowas.

wenns net geht probier es dann nochmal mit dem:
<Files *.gif>
Order deny,allow
Allow from all
</Files>
 
Zuletzt bearbeitet:
also mir fällt leider nichts weiter ein...hab jetzt alles mögliche ausprobiert...vielleicht hat ja wirklich noch jemand anders ne zündende idee wie man das irgendwie regeln kann...

...aber trotzdem danke für die mühe ;)
 
Es kann auch sein, dass dein Webspaceanbieter kein mod_rewrite unterstützt oder das erst freigeschaltet werden muss.
Schick denen mal ne Mail und frag am besten nach.



MFG,
MagicanEye07