httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Julie Kurpa" <jku...@volusia.org>
Subject Re: [users@httpd] Show Alternate Image if Requested Image is Missing
Date Tue, 03 May 2016 16:36:36 GMT
It's possible I've just gotten it to work.  Still testing but this is very promising....

I found a blogger who gave code on how to do this.  http://drincruz.blogspot.com/2009/05/apache-redirecting-missing-images-with.html

Since I was already getting the DocumetRoot in the path, I decided to hardcode the path to
the images and ended up with the following that is working:

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond "/mnt/data/pawebdata/%{REQUEST_URI}" !-f
 RewriteRule \.(gif|jpe?g|png|bmp)$ "/mnt/data/pawebdata/images/sketches/no_sketch.jpg" [NC,L]
</IfModule>

Log snippet looks like this:

172.30.29.19 - - [03/May/2016:12:16:49 --0400] [pawebdev1.vcgov.org/sid#7fb094b31b60][rid#7fb094c3fc58/initial]
(2) init rewrite engine with requested uri /images/sRegion-Body.png
172.30.29.19 - - [03/May/2016:12:16:49 --0400] [pawebdev1.vcgov.org/sid#7fb094b31b60][rid#7fb094c3fc58/initial]
(3) applying pattern '\\.(gif|jpe?g|png|bmp)$' to uri '/images/sRegion-Body.png'
172.30.29.19 - - [03/May/2016:12:16:49 --0400] [pawebdev1.vcgov.org/sid#7fb094b31b60][rid#7fb094c3fc58/initial]
(4) RewriteCond: input='/mnt/data/pawebdata//images/sRegion-Body.png' pattern='!-f' =>
not-matched
172.30.29.19 - - [03/May/2016:12:16:49 --0400] [pawebdev1.vcgov.org/sid#7fb094b31b60][rid#7fb094c3fc58/initial]
(1) pass through /images/sRegion-Body.png
172.30.29.19 - - [03/May/2016:12:16:49 --0400] [pawebdev1.vcgov.org/sid#7fb094b31b60][rid#7fb094c43c78/initial]
(2) init rewrite engine with requested uri /images/sketches/82989.jpg
172.30.29.19 - - [03/May/2016:12:16:49 --0400] [pawebdev1.vcgov.org/sid#7fb094b31b60][rid#7fb094c43c78/initial]
(3) applying pattern '\\.(gif|jpe?g|png|bmp)$' to uri '/images/sketches/82989.jpg'
172.30.29.19 - - [03/May/2016:12:16:49 --0400] [pawebdev1.vcgov.org/sid#7fb094b31b60][rid#7fb094c43c78/initial]
(4) RewriteCond: input='/mnt/data/pawebdata//images/sketches/82989.jpg' pattern='!-f' =>
matched
172.30.29.19 - - [03/May/2016:12:16:49 --0400] [pawebdev1.vcgov.org/sid#7fb094b31b60][rid#7fb094c43c78/initial]
(2) rewrite '/images/sketches/82989.jpg' -> '/mnt/data/pawebdata/images/sketches/no_sketch.jpg'
172.30.29.19 - - [03/May/2016:12:16:49 --0400] [pawebdev1.vcgov.org/sid#7fb094b31b60][rid#7fb094c43c78/initial]
(2) local path result: /mnt/data/pawebdata/images/sketches/no_sketch.jpg
172.30.29.19 - - [03/May/2016:12:16:49 --0400] [pawebdev1.vcgov.org/sid#7fb094b31b60][rid#7fb094c43c78/initial]
(1) go-ahead with /mnt/data/pawebdata/images/sketches/no_sketch.jpg [OK]


Will still try some tweaks to avoid coding the full path but at least it's working.  I've
spent over a week on this. 



Julie Kurpa


>>> "Julie Kurpa" <jkurpa@volusia.org> 5/3/2016 11:52 AM >>>
Yes.  Do you want a snippet or the whole thing?  Size  442 KB.

I'm new to this forum, do I just attach it to the reply email?

Julie Kurpa


>>> Yehuda Katz <yehuda@ymkatz.net> 5/3/2016 11:45 AM >>>
Do you have logs from either of those?

- Y


On Tue, May 3, 2016 at 11:44 AM, Julie Kurpa <jkurpa@volusia.org> wrote:

> I put the "no_sketch.jpg" image in path
> "/mnt/data/pawebdata/docs/images/sketches" and indeed, every jpg showed the
> "no_sketch.jpg" image.
>
> The 302 didn't seem to do anything.
>
> Julie Kurpa
>
>
> >>> "Julie Kurpa" <jkurpa@volusia.org> 5/3/2016 11:34 AM >>>
> Yes there is an alias for the images specified in the vhosts.conf file.
> :)
>
> Alias /images/ /mnt/data/pawebdata/images/
>  <Directory /mnt/data/pawebdata/images>
>   AllowOverride None
>   Order allow,deny
>   Allow from all
>  </Directory>
>
> I can create the directory path "/mnt/data/pawebdata/docs/images/sketches"
> just to see if the "no_sketch.jpg" shows. But that couldn't be the
> permanent solution.
>
> I will also try the 302 thing.
>
>
>
> Julie Kurpa
>
>
> >>> Yehuda Katz <yehuda@ymkatz.net> 5/3/2016 11:25 AM >>>
> The images have to be accessible somehow: Just to clarify, you said:
> - The DocumentRoot is "/mnt/data/pawebdata/docs"
> - The images are located in "/mnt/data/pawebdata/images"
>
> How does the browser ever load any image? Is there an alias directive
> somewhere in the configuration?
>
> Can you put the image at
> /mnt/data/pawebdata/docs/images/sketches/no_sketch.jpg and see if it works?
>
> You could try an external redirect instead, but I haven't tested that
> myself.
> I recommend making it a temporary redirect (302) rather than permanent
> (301):
>
> RewriteEngine on
> RewriteCond %{REQUEST_FILENAME} !-f
> RewriteRule \.(gif|jpe?g|png|bmp)$ /images/sketches/no_sketch.jpg
> [NC,L,R=302]
>
> - Y
>
> On Tue, May 3, 2016 at 11:16 AM, Julie Kurpa <jkurpa@volusia.org> wrote:
>
> > Thanks Yehuda,
> >
> > I tried your suggested code already and have just retried it.   The
> > behavior is that all jpg's are now not showing at all.
> >
> > From what I tell from the rewrite.log, it is pasting the DocumentRoot
> path
> > in front of the path to the "no_sketch.jpg" for all JPG references.
> >
> > The DocumentRoot is "/mnt/data/pawebdata/docs"
> >
> > Here's what the log shows is being used for the path to "no_sketch.jpg"
> >
> > /mnt/data/pawebdata/docs/images/sketches/no_sketch.jpg
> >
> > Note that I did not configure this Apache environment.  I'm coming in
> > (inexperienced...but not dumb) with the assignment to show
> "no_sketch.jpg"
> > for missing JPGs in the /image/sketches path and having to work with
> > someone else's configuration.
> > So I'll try to give the best information I can.
> >
> >
> > Julie Kurpa
> > Sr. Systems Programmer
> >   119 W. Indiana Ave
> >   DeLand, FL  32720
> >   Office:  (386) 736-5960 x12875
> >
> > >>> Yehuda Katz <yehuda@ymkatz.net> 5/3/2016 11:02 AM >>>
> > On Tue, May 3, 2016 at 10:52 AM, Julie Kurpa <jkurpa@volusia.org> wrote:
> >
> > > The sketches themselves are JPGs located within a directory on the
> Linux
> > > server.
> > > If the JPG for a property is found to be missing, I would like to show
> an
> > > alternate JPG called "no_sketch.jpg".
> > >
> >
> >
> > I've tried a gazillion variations of the RewriteRule and am now trying
> the
> > > Redirect.
> > >
> > > I'm completely at a loss.    Here is what I have in my
> > > vhosts.d/non-ssl.conf file for this step:
> > >
> > > <IfModule mod_rewrite.c>
> > >  RewriteEngine on
> > >  RewriteLog /var/log/apache2/rewrite.log
> > >  RewriteLogLevel 4
> > >  RewriteCond %{REQUEST_FILENAME} !-f
> > >  RewriteCond %{REQUEST_URI} "\.(gif|jpg|jpeg|png)$"
> > >  Redirect  .* http://pawebdev1.vcgov.org/images/sketches/no_sketch.jpg 
> > > </IfModule>
> > >
> >
> > You need to use RewriteRule, Redirect has nothing to do with RewriteCond.
> > Something like the following should be enough:
> >
> > RewriteEngine on
> > RewriteCond %{REQUEST_FILENAME} !-f
> > RewriteRule \.(gif|jpe?g|png|bmp)$ /images/sketches/no_sketch.jpg [NC,L]
> >
> > I also usually recommend not using the <IfModule> directive. If you want
> > this to work, you probably want the server to show an error if the
> rewrite
> > module isn't loaded rather than ignore the configuration.
> >
> > - Y
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org 
> > For additional commands, e-mail: users-help@httpd.apache.org 
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org 
> For additional commands, e-mail: users-help@httpd.apache.org 
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org 
> For additional commands, e-mail: users-help@httpd.apache.org 
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org 
For additional commands, e-mail: users-help@httpd.apache.org 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message