Bekijk Volledige Versie : probleem met rewrite op apache
Matthijs de Z
21/04/08, 20:55
Hoi,
Ik heb een PHP scrcipt gemaakt, waarmee ik files op kan halen uit een
directry, die voor anderen niet toegankelijk is.
Deze is namelijk afgeschermd door een .htaccess file met deze inhoud.
order deny,allow
deny from all
(Het PHP script staat overigens in een andere directory)
Als ik
<img border="0" src="plaatjes.php?img=test.jpg">
in een html pagina zet en opvraag via apache, dan krijg ik gewoon het
plaatje te zien (die dus in de beveiligde directory staat).
Nu wil ik met een rewrite tooltje er voor zorgen dat de verzoeken naar
<img border="0" src="secure/test.jpg">
automatisch omgezet worden naar:
<img border="0" src="plaatjes.php?img=test.jpg">
nu had ik dit bedacht
RewriteEngine On
RewriteRule (.*)\.(jpg|gif|png)
http://localhost/traderspit/tests/plaatjes/plaatjes.php?img=$1.$2
maar dat werkt niet.
zelfs
RewriteEngine On
RewriteRule (.*)\.(jpg|gif|png)
http://localhost/traderspit/tests/plaatjes/test.jpg
werkt niet....
iemand een idee om dit op te kunnen lossen?
Mazzel,
Matthijs
Rik Wasmus
21/04/08, 22:25
On Mon, 21 Apr 2008 20:51:48 +0200, Matthijs de Z
<MendanLdaarnaDenalslaatstZ@hotmail.com> wrote:
> Nu wil ik met een rewrite tooltje er voor zorgen dat de verzoeken naar
>
> <img border="0" src="secure/test.jpg">
>
> automatisch omgezet worden naar:
>
> <img border="0" src="plaatjes.php?img=test.jpg">
>
> nu had ik dit bedacht
> RewriteEngine On
> RewriteRule (.*)\.(jpg|gif|png)
> http://localhost/traderspit/tests/plaatjes/plaatjes.php?img=$1.$2
>
> maar dat werkt niet.
Inderdaad, probeer niet dit via HTTP (dat kan namelijk niet, want dat heb
je afgeschermd) maar via het file system te doen.
> RewriteEngine On
> RewriteRule (.*)\.(jpg|gif|png)
> http://localhost/traderspit/tests/plaatjes/test.jpg
>
> werkt niet....
>
> iemand een idee om dit op te kunnen lossen?
Het is even jammer dat ik het blijkbaar als ik naar je paden kijk niet
rechtstreeks vanaf de document root kan aanpakken, maar vooruit:
RewriteRule (.*)/secure/(.*).()(jpg|gif|png) $1/plaatjes.phpimg=$2.$3 [L]
Mocht je er niet uit komen, zet dan even je rewritelog aan.
--
Rik Wasmus
matthijsdezwart@gmail.com
22/04/08, 20:05
> > iemand een idee om dit op te kunnen lossen?
>
> Het is even jammer dat ik het blijkbaar als ik naar je paden kijk niet
> rechtstreeks vanaf de document root kan aanpakken, maar vooruit:
>
> RewriteRule (.*)/secure/(.*).()(jpg|gif|png) $1/plaatjes.phpimg=$2.$3 [L]
>
> Mocht je er niet uit komen, zet dan even je rewritelog aan.
Hoi,
Bedankt voor je reactie.
helaas werkt het niet. Hoe kan ik mijn rewritelog aanzetten? in de
httpd_conf kon ik niets vinden en RewriteLog d:\rewrite.log werkte
niet.
Mazzel,
Matthijs
Rik Wasmus
22/04/08, 20:25
On Tue, 22 Apr 2008 20:02:55 +0200, <matthijsdezwart@gmail.com> wrote:
>> > iemand een idee om dit op te kunnen lossen?
>>
>> Het is even jammer dat ik het blijkbaar als ik naar je paden kijk niet
>> rechtstreeks vanaf de document root kan aanpakken, maar vooruit:
>>
>> RewriteRule (.*)/secure/(.*).()(jpg|gif|png) $1/plaatjes.phpimg=$2.$3
>> [L]
>>
>> Mocht je er niet uit komen, zet dan even je rewritelog aan.
>
> Bedankt voor je reactie.
> helaas werkt het niet.
Wat is de _precieze_ url die je erin steekt?
> Hoe kan ik mijn rewritelog aanzetten? in de
> httpd_conf kon ik niets vinden en RewriteLog d:\rewrite.log werkte
> niet.
RewriteLog kun je alleen aanzetten in server config (normaal httpd.conf)
of virtual host configuratie, dus _niet_ in .htaccess:
RewriteLog D:/rewrite.log
RewriteLogLevel 8
--
Rik Wasmus
matthijsdezwart@gmail.com
22/04/08, 20:55
On 22 apr, 20:22, "Rik Wasmus" <luiheidsgoe...@hotmail.com> wrote:
> On Tue, 22 Apr 2008 20:02:55 +0200, <matthijsdezw...@gmail.com> wrote:
> >> > iemand een idee om dit op te kunnen lossen?
>
> >> Het is even jammer dat ik het blijkbaar als ik naar je paden kijk niet
> >> rechtstreeks vanaf de document root kan aanpakken, maar vooruit:
>
> >> RewriteRule (.*)/secure/(.*).()(jpg|gif|png) $1/plaatjes.phpimg=$2.$3
> >> [L]
>
> >> Mocht je er niet uit komen, zet dan even je rewritelog aan.
>
> > Bedankt voor je reactie.
> > helaas werkt het niet.
>
> Wat is de _precieze_ url die je erin steekt?
>
> > Hoe kan ik mijn rewritelog aanzetten? in de
> > httpd_conf kon ik niets vinden en RewriteLog d:\rewrite.log werkte
> > niet.
>
> RewriteLog kun je alleen aanzetten in server config (normaal httpd.conf)
> of virtual host configuratie, dus _niet_ in .htaccess:
>
> RewriteLog D:/rewrite.log
> RewriteLogLevel 8
> --
> Rik Wasmus
Hoi,
ik kwam er net achter dat in mijn httpd.conf nog een # stond voor
LoadModule rewrite_module modules/mod_rewrite.so lekker handig dus...
Die dus even weggehaald en onderaan de file
RewriteLog D:/rewrite.log
RewriteLogLevel 8
geplaatst, vervolgens apache herstart.
in de errorlog van apache kreeg ik dit te zien:
[Tue Apr 22 20:40:11 2008] [alert] [client 127.0.0.1] D:/xampp/htdocs/
traderspit/tests/plaatjes/secure/.htaccess: RewriteLog not allowed
here, referer: http://localhost/traderspit/tests/
[Tue Apr 22 20:40:13 2008] [alert] [client 127.0.0.1] D:/xampp/htdocs/
traderspit/tests/plaatjes/secure/.htaccess: RewriteLog not allowed
here, referer: http://localhost/traderspit/tests/plaatjes/test.html
[Tue Apr 22 20:40:15 2008] [alert] [client 127.0.0.1] D:/xampp/htdocs/
traderspit/tests/plaatjes/secure/.htaccess: RewriteLog not allowed
here, referer: http://localhost/traderspit/tests/plaatjes/test.html
[Tue Apr 22 20:41:26 2008] [alert] [client 127.0.0.1] D:/xampp/htdocs/
traderspit/tests/plaatjes/secure/.htaccess: RewriteLog not allowed
here, referer: http://localhost/traderspit/tests/plaatjes/test.html
Beetje apart...
Groeten,
Matthijs
Rik Wasmus
22/04/08, 21:05
On Tue, 22 Apr 2008 20:49:31 +0200, <matthijsdezwart@gmail.com> wrote:
> On 22 apr, 20:22, "Rik Wasmus" <luiheidsgoe...@hotmail.com> wrote:
>> On Tue, 22 Apr 2008 20:02:55 +0200, <matthijsdezw...@gmail.com> wrote:
>> >> > iemand een idee om dit op te kunnen lossen?
>>
>> >> Het is even jammer dat ik het blijkbaar als ik naar je paden kijk
>> niet
>> >> rechtstreeks vanaf de document root kan aanpakken, maar vooruit:
>>
>> >> RewriteRule (.*)/secure/(.*).()(jpg|gif|png)
>> $1/plaatjes.phpimg=$2.$3
>> >> [L]
>>
>> >> Mocht je er niet uit komen, zet dan even je rewritelog aan.
>>
>> > Bedankt voor je reactie.
>> > helaas werkt het niet.
>>
>> Wat is de _precieze_ url die je erin steekt?
>>
>> > Hoe kan ik mijn rewritelog aanzetten? in de
>> > httpd_conf kon ik niets vinden en RewriteLog d:\rewrite.log werkte
>> > niet.
>>
>> RewriteLog kun je alleen aanzetten in server config (normaal
>> httpd.conf)
>> of virtual host configuratie, dus _niet_ in .htaccess:
>>
>> RewriteLog D:/rewrite.log
>> RewriteLogLevel 8
>
> ik kwam er net achter dat in mijn httpd.conf nog een # stond voor
> LoadModule rewrite_module modules/mod_rewrite.so lekker handig dus...
> Die dus even weggehaald en onderaan de file
>
> RewriteLog D:/rewrite.log
> RewriteLogLevel 8
>
> geplaatst, vervolgens apache herstart.
>
> in de errorlog van apache kreeg ik dit te zien:
> [Tue Apr 22 20:40:11 2008] [alert] [client 127.0.0.1] D:/xampp/htdocs/
> traderspit/tests/plaatjes/secure/.htaccess: RewriteLog not allowed
Precies wat ik zeg: RewriteLog kan _niet_ in .htacces, wel in server
config in httpd.conf of virtual host configuratie.
Maar nu mod_rewrite aan staat, wat gebeurd er als je dat RewriteLog weg
haalt en enkel de RewriteEngine & RewriteRule directives laat staan?
--
Rik Wasmus
matthijsdezwart@gmail.com
22/04/08, 21:45
On 22 apr, 20:56, "Rik Wasmus" <luiheidsgoe...@hotmail.com> wrote:
> On Tue, 22 Apr 2008 20:49:31 +0200, <matthijsdezw...@gmail.com> wrote:
> > On 22 apr, 20:22, "Rik Wasmus" <luiheidsgoe...@hotmail.com> wrote:
> >> On Tue, 22 Apr 2008 20:02:55 +0200, <matthijsdezw...@gmail.com> wrote:
> >> >> > iemand een idee om dit op te kunnen lossen?
>
> >> >> Het is even jammer dat ik het blijkbaar als ik naar je paden kijk
> >> niet
> >> >> rechtstreeks vanaf de document root kan aanpakken, maar vooruit:
>
> >> >> RewriteRule (.*)/secure/(.*).()(jpg|gif|png)
> >> $1/plaatjes.phpimg=$2.$3
> >> >> [L]
>
> >> >> Mocht je er niet uit komen, zet dan even je rewritelog aan.
>
> >> > Bedankt voor je reactie.
> >> > helaas werkt het niet.
>
> >> Wat is de _precieze_ url die je erin steekt?
>
> >> > Hoe kan ik mijn rewritelog aanzetten? in de
> >> > httpd_conf kon ik niets vinden en RewriteLog d:\rewrite.log werkte
> >> > niet.
>
> >> RewriteLog kun je alleen aanzetten in server config (normaal
> >> httpd.conf)
> >> of virtual host configuratie, dus _niet_ in .htaccess:
>
> >> RewriteLog D:/rewrite.log
> >> RewriteLogLevel 8
>
> > ik kwam er net achter dat in mijn httpd.conf nog een # stond voor
> > LoadModule rewrite_module modules/mod_rewrite.so lekker handig dus...
> > Die dus even weggehaald en onderaan de file
>
> > RewriteLog D:/rewrite.log
> > RewriteLogLevel 8
>
> > geplaatst, vervolgens apache herstart.
>
> > in de errorlog van apache kreeg ik dit te zien:
> > [Tue Apr 22 20:40:11 2008] [alert] [client 127.0.0.1] D:/xampp/htdocs/
> > traderspit/tests/plaatjes/secure/.htaccess: RewriteLog not allowed
>
> Precies wat ik zeg: RewriteLog kan _niet_ in .htacces, wel in server
> config in httpd.conf of virtual host configuratie.
>
> Maar nu mod_rewrite aan staat, wat gebeurd er als je dat RewriteLog weg
> haalt en enkel de RewriteEngine & RewriteRule directives laat staan?
> --
> Rik Wasmus- Tekst uit oorspronkelijk bericht niet weergeven -
>
> - Tekst uit oorspronkelijk bericht weergeven -
Foutje ;-)
als ik dit in de .htaccess zet die in de secure directory staat:
RewriteEngine On
RewriteRule (.*).()(jpg|gif|png) ../plaatjes.php?img=$1.$3 [L]
dan werkt het.
Dit is wat de log zegt:
127.0.0.1 - - [22/Apr/2008:21:32:56 +0200] [localhost/sid#1401f90]
[rid#298edd0/initial] (3) [perdir D:/xampp/htdocs/traderspit/tests/
plaatjes/secure/] strip per-dir prefix: D:/xampp/htdocs/traderspit/
tests/plaatjes/secure/1.jpg -> 1.jpg
127.0.0.1 - - [22/Apr/2008:21:32:56 +0200] [localhost/sid#1401f90]
[rid#298edd0/initial] (3) [perdir D:/xampp/htdocs/traderspit/tests/
plaatjes/secure/] applying pattern '(.*).()(jpg|gif|png)' to uri
'1.jpg'
127.0.0.1 - - [22/Apr/2008:21:32:56 +0200] [localhost/sid#1401f90]
[rid#298edd0/initial] (2) [perdir D:/xampp/htdocs/traderspit/tests/
plaatjes/secure/] rewrite '1.jpg' -> '../plaatjes.php?img=1.jpg'
127.0.0.1 - - [22/Apr/2008:21:32:56 +0200] [localhost/sid#1401f90]
[rid#298edd0/initial] (3) split uri=../plaatjes.php?img=1.jpg ->
uri=../plaatjes.php, args=img=1.jpg
127.0.0.1 - - [22/Apr/2008:21:32:56 +0200] [localhost/sid#1401f90]
[rid#298edd0/initial] (3) [perdir D:/xampp/htdocs/traderspit/tests/
plaatjes/secure/] add per-dir prefix: ../plaatjes.php -> D:/xampp/
htdocs/traderspit/tests/plaatjes/secure/../plaatjes.php
127.0.0.1 - - [22/Apr/2008:21:32:56 +0200] [localhost/sid#1401f90]
[rid#298edd0/initial] (2) [perdir D:/xampp/htdocs/traderspit/tests/
plaatjes/secure/] strip document_root prefix: D:/xampp/htdocs/
traderspit/tests/plaatjes/secure/../plaatjes.php -> /traderspit/tests/
plaatjes/secure/../plaatjes.php
127.0.0.1 - - [22/Apr/2008:21:32:56 +0200] [localhost/sid#1401f90]
[rid#298edd0/initial] (1) [perdir D:/xampp/htdocs/traderspit/tests/
plaatjes/secure/] internal redirect with /traderspit/tests/plaatjes/
secure/../plaatjes.php [INTERNAL REDIRECT]
Als ik
order deny,allow
deny from all
in de .htaccess file er bij zet, dan krijg ik geen plaatje te zien en
geen log file gegevens.
Kan er geen rewrite plaatsvinden met deny from all?
mazzel,
Matthijs
Rik Wasmus
22/04/08, 23:05
On Tue, 22 Apr 2008 21:35:45 +0200, <matthijsdezwart@gmail.com> wrote:
> als ik dit in de .htaccess zet die in de secure directory staat:
> RewriteEngine On
> RewriteRule (.*).()(jpg|gif|png) ../plaatjes.php?img=$1.$3 [L]
>
> dan werkt het.
Dan mag je hem ook aanpassen naar:
RewriteEngine On
RewriteRule (.*)\.(jpg|gif|png) ../plaatjes.php?img=$1.$2 [L]
> Dit is wat de log zegt:
<snip OK log>
> order deny,allow
> deny from all
>
> in de .htaccess file er bij zet, dan krijg ik geen plaatje te zien en
> geen log file gegevens.
>
> Kan er geen rewrite plaatsvinden met deny from all?
Waarschijnlijk niet. Niets houd je echter tegen het af te vangen in een
hogere map.
--
Rik Wasmus
matthijsdezwart@gmail.com
23/04/08, 20:45
> > in de .htaccess file er bij zet, dan krijg ik geen plaatje te zien en
> > geen log file gegevens.
>
> > Kan er geen rewrite plaatsvinden met deny from all?
>
> Waarschijnlijk niet. Niets houd je echter tegen het af te vangen in een
> hogere map.
hoi,
ik laat de errors wegschrijven naar D:/xampp/htdocs/rewrite.log de
secure map zit in D:/xampp/htdocs/traderspit/tests/
plaatjes/secure/
Vooralsnog test ik de boel lokaal. Zou het een goed idee zijn om
127.0.0.1 en localhost een allow te geven? Als het dan op een
webserver zou staan, kan het php script de plaatjes wel lezen, maar
een buitenstaander niet. Of moet de buitenstaander echt in die
directory om een rewrite te kunnen triggeren?
mazzel,
Matthijs